Ankündigung

Einklappen
Keine Ankündigung bisher.

MySQL-Update Problem...

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • MySQL-Update Problem...

    Hey,

    Ich habe in meinem Script eine Updatefunktion
    Code:
    $sql="UPDATE `accounts` SET `lastaction` = '".$time."' WHERE `acctid` = '".$id."'";
    $result=mysql_query($sql);
    	    if (!$result) {
    			echo "MySQL Update ist gescheitert!" . mysql_error();
    		}
    		echo $sql . "
    ";
    Mit der ich die letzte Aktion eines Users feststelln möchte..
    Aber in meiner Datenbank ändert sich der Wert nicht und Fehlermeldung wird auch keine Ausgegeben...
    Ich hab aber gemerkt (durch 2 Select-Funktionen) dass nach dem Update der Wert auch geändert ist.. aber wenn ich die Seite nochmal aufrufe ist der Wert wieder wie vorher..
    An was könnte das liegen?? Ich hab ja keinen Befehl der des nochmal ändert..
    Ich hoffe ihr könnt mir helfen,
    MadMike

  • #2
    Dann wird wohl die Bedingung nicht stimmen. Ist die Spalte acctid vom Typ Varchar oder warum machst du um id die ' ?

    Gruß
    phpfan

    Kommentar


    • #3
      nee is int.. geht aber ohne die ' auch net..
      Aber des Updaten geht ja.. nur bleibt der Wert net des was er soll..

      Kommentar


      • #4
        Und was sagt mysql_affected_rows? Ich gehe immer noch davon aus, dass die Bedingung nicht stimmt. Man könnte ja mal $sql per echo ausgeben und nachsehen, ob es die ID wirklich in der DB gibt und/oder das mal mit phpMyAdmin abschicken.

        Gruß
        phpfan

        Kommentar


        • #5
          echo $sql . "
          ";
          siehe oben^^

          Die Bedingungen müssen stimmen..
          Ich hab ja eine Selectabfrage dann den Update Befehl und dann noch eine Selectabfrage..
          Des erste Select gibt den alten Wert z.b. 0 aus der Update befehl ändert des auf z.b. 10 und der 2.te Select-Befehl gibt 10 aus..
          Wenn ich des aber nochmal mache gibt der erste Select-Befehl WIEDER 0 aus, anstatt 10...

          Kommentar


          • #6
            Tja, dann hilft bei deinem Script wohl auch nur

            Richtig debuggen
            1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
            2. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
            3. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
            4. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
            5. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
            6. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
            7. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

            Die Ausgaben per echo kann man sich ersparen, in dem man einen Debugger benutzt, was eigentlich selbstverständlich sein sollte.

            Gruß
            phpfan

            Kommentar


            • #7
              Ich hab den Skript jetzt in eine andere Datei und von dort aus gestartet -> Kein Problem.. nur in meiner eigentlichen Datei geht der net..

              Kommentar


              • #8
                Dann hast du wohl einen Fehler drin

                Gruß
                phpfan

                Kommentar


                • #9
                  Tja .. da hast wohl nicht genug Quellcode gepostet !!

                  nur in meiner eigentlichen Datei geht der net..

                  Kommentar

                  Lädt...
                  X