Ankündigung

Einklappen
Keine Ankündigung bisher.

UPDATE SQL-Bfehl

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • UPDATE SQL-Bfehl

    Hallo,
    Was ist an dieser SQL-Abfrage falsch?
    PHP-Code:
    $online "UPDATE game_user SET on='online' where name='$_SESSION[username]'";
    mysql_query($online); 
    Dies mach ich beim login. Den kompletten Login-Skript brauch ich ja nicht zeigen..
    Auf jeden Fall wird das Feld namens ON nicht zu online geupdatet. Das Feld ist immernoch leer...
    Allerdings kommt keine Fehlermeldung

    Was muss ich tun?
    Also an den Update-SQL Befehl seh ich kein Fehler.

    P.S.: Das Login-Skript funktioniert im übrigen^^ Das Feld, wo das sha1() verschlüsselte Passwort liegt war nur zu klein^^

  • #2
    http://dev.mysql.com/doc/refman/5.1/...ved-words.html

    http://www.php.de/wiki-php/index.php...utze_Backticks

    Kommentar


    • #3
      Okay ich ersetze halt das ' zu `.
      Das hab ich jetzt gemacht.
      PHP-Code:
      $online "UPDATE game_user SET on=`online` where name=`$_SESSION[username]`";
      mysql_query($online); 
      Nur das Problem ist immernoch nicht gelöst...

      Kommentar


      • #4
        also spontan würd ich sagen das hier :

        $_SESSION[username]

        den Bereich würd ich schon aus Prinzip so schreiben :

        PHP-Code:
        "UPDATE game_user SET status='online' WHERE name='".$_SESSION["username"]."' " 
        danach würd ich mir den SQL-String mal ausgeben lassen, bevor du ihn an die Datenbank schickst .. Error -reporting hochdrehen - womöglich gibts deinen $_SESSION["username"] überhaupt nicht, weil er gelöscht / was auch immer wurde - oder du hast session_start() vergessen, so dass er nicht auf die richtigen Daten zugreift

        außerdem meinte er dein ON .. das ist reserviert (left join ... ON xyz ) - also nenn es online oder status oder sowas und die Backticks da machen keinen Sinn - Die Hochkommas waren durchaus richtig

        Kommentar


        • #5
          Zitat von vTasker Beitrag anzeigen
          Okay ich ersetze halt das ' zu `.
          Das hab ich jetzt gemacht.
          PHP-Code:
          $online "UPDATE game_user SET on=`online` where name=`$_SESSION[username]`";
          mysql_query($online); 
          Bitte alles lesen und noch mal.

          Kommentar


          • #6
            session_start() steht da schon. Die Sessions existieren auch bereits so.
            Ich zeig mal ein Teil meines Login-Skripts:
            PHP-Code:
            if (mysql_num_rows($sql) > 0) {
            $row mysql_fetch_object($sql);
            $_SESSION['erlaubt'] = true;
            $_SESSION['uid'] = $row->id;
            $_SESSION['username'] = $username;
            } else {
            $_SESSION['erlaubt'] = false;
            }
            }
            else {
            echo 
            "Eines der Felder wurde ausgelassen!";
            }
            if(
            $_SESSION['erlaubt']) {
            echo 
            "Du wurdest erfolgreich  eingeloggt!";
            $online "UPDATE game_user SET on=`online` where name='".$_SESSION["username"]."'";
            mysql_query($online);
            } else {
            echo 
            "Login fehlgeschlagen!";
            }
            }
            }
            ?> 

            Kommentar


            • #7
              Alles was du brauchst steht bereits hier im Thema.

              http://www.php.de/wiki-php/index.php/Debugging:SQL

              [MOD: Thread geschlossen]

              Kommentar

              Lädt...
              X