Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

Thema: MySQL macht käse

  1. #1
    Kaiser(in)
    Registriert seit
    29.03.2009
    Ort
    1011 1111 1011 WorldWideWeb
    Beiträge
    2.439
    Danke
    2
    Bekam 6 mal "Danke" in 6 Postings

    Standard MySQL macht käse

    Hallo,
    ich habe folgendes problem:
    ich versuche ein voting-system zu machen, lese dazu die anzahle derer aus die abgestimmt haben, und die derer die dafür gestimmt haben und zähle, wenn man dann abstimme die erlsenen date auf, bzw ab. Alles super. Dann sende ich das ganze via
    PHP-Code:
    $sql="UPDATE animations SET voters='".$voters."' AND rank='".$rank."' WHERE name='".$ani."'"
    wenn jetzt also in der DB steht
    voters=2 und rank=1 und ich dann im script $sql ausgebe(dafür gestimmt) bekomme ich
    Code:
    UPDATE animations SET voters='3' AND rank='2' WHERE name='Test'
    soweti so gut. Aber egal was ich mache, in der datenbank steht nach dem query() immer
    voters=0 und rank=1.
    // EIDT:
    Und noch ein anderes problem nebenbei:
    In script 1 verwende ich
    PHP-Code:
    date("G:i"); 
    um die zeit zu bekommen und auf der gleichen seite wie problem 1 für das kommentare schreiben
    PHP-Code:
    $today_time=date("G:i"); 
    um die tageszeit zu bekommen und erhalte aber nich wie bei script 1 die tageszeit sondern den unix-zeitstempel....
    / EDIT
    Was mach ich denn falsch? Danke an alle die sich gedanken machen
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!
    Geändert von Tobse (29.10.2009 um 22:05 Uhr)
    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.
    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  2. #2
    König(in)
    Registriert seit
    07.02.2009
    Ort
    Leipzig
    Beiträge
    1.391
    Danke
    2
    Bekam 21 mal "Danke" in 20 Postings

    Standard AW: MySQL macht käse

    Wegen MySQL: bist Du sicher, dass das Statement auch ohne Fehler abgesetzt wird? Ich würde mal raten die Spaltennamen in Backticks zu setzen um evtl. Probleme mit MySQL-eigenen, namensgleichen Funktionen zu umgehen. Also:

    Code:
    UPDATE animations SET `voters`='3' AND `rank`='2' WHERE `name`='Test'
    Und noch ein anderes problem nebenbei:
    Die 2 Ausschnitte reichen nicht. Eigentlich dürfte dort nicht der Unix-Zeitstempel kommen. Ich nehme an du hast irgendwas übersehen oder verwechselt.

  3. #3
    Kaiser(in)
    Themenstarter

    Registriert seit
    29.03.2009
    Ort
    1011 1111 1011 WorldWideWeb
    Beiträge
    2.439
    Danke
    2
    Bekam 6 mal "Danke" in 6 Postings

    Standard AW: MySQL macht käse

    Ok, ich mach das mit den backtiks mal und:
    hat sich nicht geändert.

    Das mit den beiden date() is so:
    ich hab folgenden fehler gemacht:
    date(G.i); anstatt date("G:i");
    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.
    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  4. #4
    König(in)
    Registriert seit
    07.02.2009
    Ort
    Leipzig
    Beiträge
    1.391
    Danke
    2
    Bekam 21 mal "Danke" in 20 Postings

    Standard AW: MySQL macht käse

    Zeig mal den Quellcode um das SQL-Statement herum. Hast du mysql_query auch sicher abgesetzt?

  5. #5
    Bandit
    Gast

    Standard AW: MySQL macht käse

    Was für Datentypen haben die Tabellenspalten? ' bei Zahlen ist falsch!

  6. #6
    Kaiser(in)
    Themenstarter

    Registriert seit
    29.03.2009
    Ort
    1011 1111 1011 WorldWideWeb
    Beiträge
    2.439
    Danke
    2
    Bekam 6 mal "Danke" in 6 Postings

    Standard AW: MySQL macht käse

    Vorher hatten sie INT, aber mit VARCHAR und settype(); klapps auch nicht.
    Das ist der abfrage-block:
    PHP-Code:
    $sql="SELECT * FROM animations WHERE name='".$ani."'";
            if (
    $resultat=$db->query($sql)) {
            
    $ergeb=$resultat->fetch_array();
                
    $voters=$ergeb["voters"];
                
    settype($voters"integer");
                
    $rank=$ergeb["rank"];
                
    settype($rank"integer");
                if (
    $uservote=="add" || $uservote=="take") {
                    if (
    $uservote=="add") { $rank++; } else { $rank--; }
                    
    $voters++;
                    
    $sql="UPDATE `animations` SET `voters` = '".$voters."' AND `rank`='".$rank."' WHERE CONVERT( `animations`.`name` USING utf8 ) = 'TITEEEEEEL!' AND CONVERT( `animations`.`comment` USING utf8 ) = 'No comment entered' AND CONVERT( `animations`.`filesrc` USING utf8 ) = 'animations/TITEEEEEEL!.jpg' AND CONVERT( `animations`.`srctype` USING utf8 ) = 'img' AND CONVERT( `animations`.`rank` USING utf8 ) = '1' AND `animations`.`downloads` =2 AND CONVERT( `animations`.`uppedby` USING utf8 ) = 'Tobse' AND CONVERT( `animations`.`previewimage` USING utf8 ) = 'previews/TITEEEEEEL!.jpg' AND CONVERT( `animations`.`voters` USING utf8 ) = '0' AND CONVERT( `animations`.`comments` USING utf8 ) = '0' LIMIT 1 ;";
                    if (
    $db->query($sql)) {
                        
    $content="<span class='sucess'>Your vote is sucessfully added</span><br><a href='showanimation.php?ani=".$ani."'>back to the animation</a>"
    ich hatte vorher SELECT voters, rank dann hab ich halt mal * probiert
    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.
    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  7. #7
    König(in)
    Registriert seit
    07.02.2009
    Ort
    Leipzig
    Beiträge
    1.391
    Danke
    2
    Bekam 21 mal "Danke" in 20 Postings

    Standard AW: MySQL macht käse

    Im UPDATE-Statement hat "LIMIT" nichts zu suchen. Siehe auch Manual: http://dev.mysql.com/doc/refman/5.0/en/update.html

  8. #8
    König(in) Avatar von crAzywuLf
    Registriert seit
    03.02.2009
    Beiträge
    1.175
    Danke
    1
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: MySQL macht käse

    Zitat Zitat von threadi Beitrag anzeigen
    Im UPDATE-Statement hat "LIMIT" nichts zu suchen. Siehe auch Manual: http://dev.mysql.com/doc/refman/5.0/en/update.html
    UPDATE [LOW_PRIORITY] [IGNORE] table_reference
    SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...
    [WHERE where_condition]
    [ORDER BY ...]
    [LIMIT row_count]
    Das LIMIT gibt im UPDATE Statement an wie viele Datensätze aktualisiert werden sollen und wenn man 1 angibt dann kann er die Suche nach dem ersten Treffer abbrechen und brauch nicht weiter zu suchen.
    Gernerell also sinnvoll.
    Geändert von crAzywuLf (30.10.2009 um 09:48 Uhr)
    Gruß crAzywuLf

  9. #9
    König(in)
    Registriert seit
    07.02.2009
    Ort
    Leipzig
    Beiträge
    1.391
    Danke
    2
    Bekam 21 mal "Danke" in 20 Postings

    Standard AW: MySQL macht käse

    Oha. OK, ich schieb meinen Irrtum mal auf die Uhrzeit Aber danke für deine freundliche Korrektur (habs in der automatischen Benachrichtigung gelesen ).

    Weitere Weg um das Statement zu prüfen:
    Führ es mal so wie es in der Webseite erzeugt wird im phpmyadmin aus. Wenn dort nicht steht, dass mehr als 0 Datensätze betroffen sind stimmt irgendetwas an deiner Bedingung nicht. Das kannst Du dann prüfen indem Du es mal in ein SELECT umformst.

    Vorher:
    Code:
    UPDATE animations SET `voters`='3' AND `rank`='2' WHERE `name`='Test'
    Nachher:
    Code:
    SELECT * FROM animations WHERE `name`='Test'
    (natürlich dann das Statement mit den vielen converts aus deinem Quellcode verwenden)

  10. #10
    Kaiser(in)
    Themenstarter

    Registriert seit
    29.03.2009
    Ort
    1011 1111 1011 WorldWideWeb
    Beiträge
    2.439
    Danke
    2
    Bekam 6 mal "Danke" in 6 Postings

    Standard AW: MySQL macht käse

    Ich bin einfach in den PHP my admin gegangen, der es ja auch hinbekommen hat das zu ändern und hab seinen SQL-Befehl kopiert. xD.
    Und das Statement stimm soweit ich weis, man bekommt ja $voters und $rank aus der db. Auf jeden fall klapts selbst mit dem PHP-MyAdmin befehl nicht.
    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.
    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

Ähnliche Themen

  1. per PHP neue MySQL-Datenbank und MySQL-Benutzer anlegen
    Von sudeki05 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 3
    Letzter Beitrag: 15.04.2007, 19:40
  2. aus drei macht ein,wie macht man das????
    Von Nicolette im Forum HTML & CSS Forum
    Antworten: 9
    Letzter Beitrag: 28.08.2005, 15:35
  3. wie macht man das
    Von davidos_no.1 im Forum Forum für Grafiken und Bildbearbeitung
    Antworten: 6
    Letzter Beitrag: 03.06.2005, 18:23
  4. wie macht man das???
    Von Metallica im Forum HTML & CSS Forum
    Antworten: 2
    Letzter Beitrag: 28.03.2005, 21:28
  5. Wie macht man das????
    Von hola im Forum Forum für Grafiken und Bildbearbeitung
    Antworten: 15
    Letzter Beitrag: 27.06.2004, 16:44

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •