Mysql ändner funzt net !

  • ICh möchte ein online script basteln mit Hilfe von MySQL dafür habe ich in der Tabelle "user" eine Spalte "on" dieser Wert soll beim login auf 1 gesetzt werden doch mein Script funzt net :

    Code
    1. $id = $_SESSION["id"];
    2. $abfrage = "SELECT * FROM user WHERE id LIKE '$id'";
    3. $ergebnis = mysql_query($abfrage);
    4. $row = mysql_fetch_object($ergebnis);
    5. $aendern = "UPDATE user Set
    6. on='$on' WHERE id = '$id'";
    7. $update = mysql_query($aendern);


    Momentan blick ich net merh durch :?
    VVIIIEEEELLLL ZUUU VVIIIEEELLLLEEEE buchstaben und Variablen ^^


    hoffe ihr findet meinen Fehler!


    Es kommt keine Fehlermeldung nur wird der Wert nicht auf 1 Gesetzt !



    MFG

  • Und wo darf ich demnach keines Verwenden ?
    Wenn ich


    Code
    1. $id = $_SESSION["id"];
    2. $abfrage = "SELECT * FROM user WHERE id LIKE '$id'";
    3. $ergebnis = mysql_query($abfrage);
    4. $row = mysql_fetch_object($ergebnis);
    5. $aendern = "UPDATE user Set
    6. on="$on" WHERE id = '$id'";
    7. $update = mysql_query($aendern);


    benutze erhalte ich eine Fehlermeldung :

    Zitat

    Parse error: syntax error, unexpected T_VARIABLE in /bla/bla/bla/in.php on line 29

  • Das mit den ' ist schon ok so. mach aber volgendes


    ' ".$id." ' also immer wen du variablen einfügen willst oder variablen abfrägst, sie so einfügen.


    benutzt due mysql_error(); wenn php kein fehler erzeugt, heist das nicht das bei mysql kein fehler ist. Diese muss man aber mit dem oben genannten befehl abfragen.


    Hast alle tabellen und spaltennamen überprüft.



    Gib zum testen des gesendeten query die abfrage aus.


    In dem fall echo $abfrage oder echo $aendern dann kannst sehen was genau in deinem query steht.


    Greetz TimTim

  • Wenn ich es somache und per

    Code
    1. echo mysql_error();

    den Fehler ausgebe erhalte ich :

    Code
    1. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'on='1' WHERE id = '2'' at line 2


    Die id des Accounts mit dem ich mich einlogge ist 2 und er soll den DB eintrag von 0 auf 1 setzen das Feld ist INT 5




    hoffe ihr könnt mir helfen !

  • hier

    Code
    1. on="$on" WHERE id = '$id'";

    mach da mal die "" bei $on weg und dafür ' '
    also


    Code
    1. on='$on' WHERE id = '$id'";


    wenn du gut bist, schreibst du es wie timtim es gesagt hat also:

    Code
    1. on='" . $on . "' WHERE id = '" . $id . "'";


    dann hast du es schön Übersichtlich und die variablen werden auch mit heileits versehen.


    EDIT: ach jetzt seh ich es erst^^ die variabel $id ist nicht etwa die id, welche du davor aus der Datenbank abfragst oder? wenn ja dann musst du das bei dem zwoten query so schreiben:


    Code
    1. on='" . $on . "' WHERE id = '" . $row->id . "'";


    ansonsten gibt er 0 bzw false aus und das kann er in der DB nicht finden und zeigt eine Fehlermeldung.


    EDIT die 2.:^^
    bzw was steht in $_SESSION['id'];?

  • die frage ist ja, wie liest du die ID anhant einer ID aus?


    ich gehe davon aus, dass sich der User erst einloggt. Folglich ist doch die ID leer oder? Wenn das hier aber ein seperates skript ist hab ich nichts gesagt, aber ich würde einfach mal (nur zum Testen) bei dem zweiten query

    Code
    1. on = '1' WHERE id = '1'


    wenn dann noch ne Fehlermeldung kommt, hast du schonmal eingekreist und dann stimmt wohl was mit den variablen nicht.

  • so ich hab jetzt :

    Code
    1. echo "$on | $id"


    eingesetzt und erhalte:

    Code
    1. 1 | 2You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'on = 1 WHERE id = 2' at line 2


    "1" ist die feste variable $on und "2" ist die passende $id
    allerdings habe ich mit

    Code
    1. echo mysql_error();


    wieder die bereits geschreibene Fehermeldung erhalten !
    Ich verstehe die Fehlermeldung nicht ganz an einer anderen Stelle Funktioniert es perfekt mit fast dem gleichen Script !

  • wie gesagt, das $on und $id ist egal.



    den echo vom Query


    also das von $iwas = mysql_query("bla");


    Und hast schon die ganzen tabellen namen überprüft.


    Die fehlermeldung bedeutet, das du in deinem Befehl, einen fehler hast, und in dem ausschnit muss er sein.


    Versuch mal den Query direkt bei phpmyadmin einzugeben, und schau was da kommt.


    Greetz TimTim