Jojo: Datensatz aus DB verändern

Hallo, würde gern nach Ablauf eines bestimmten Vorgranges ein Feld in einer anderen Tabelle auf "2" setzten, was vorher auf "1" steht.

Hab ein wenig gegooglet und fand diese Lösung:

mysql_select_db("datenbank", "Update tabelle set feld='2' WHERE EAN='" . $_REQUEST['EAN_'.$i] . "' && seriennummer='" . $_REQUEST['seriennummer_'.$i] . "'");

------------

( Die Werte hab ich natürlich angepasst ( db, tabelle, feld nur zur veranschaulichung hier geändert)

Doch leider kommt bei mir die Fehlermeldung :Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource

Woran liegts? Bzw gibt es eine andere Lösung ?

Gruß

  1. mysql_select_db("datenbank", "Update tabelle set feld='2' WHERE EAN='" . $_REQUEST['EAN_'.$i] . "' && seriennummer='" . $_REQUEST['seriennummer_'.$i] . "'");

    Ganz als erstes darfst du in SQL-Statements nicht "&&" verwenden sondern "AND". Zweitens, wenn du Nummern abfragst dann muss dies so aussehen:
    EAN=" . $_REQUEST['EAN_'.$i] . " oder kürzer
    EAN=$_REQUEST['EAN_'.$i] also bei nummern keine ' verwenden

    Also muss deine query so aussehen:
    "Update tabelle set feld=2 WHERE EAN=".$_REQUEST['EAN_'.$i]." AND seriennummer=".$_REQUEST['seriennummer_'.$i]

    1. Hallo!

      Ganz als erstes darfst du in SQL-Statements nicht "&&" verwenden sondern "AND".

      Nein. MySQL kennt auch && als logischen Operator.

      Zweitens, wenn du Nummern abfragst dann muss dies so aussehen:

      EAN=" . $_REQUEST['EAN_'.$i] . " oder kürzer
      EAN=$_REQUEST['EAN_'.$i] also bei nummern keine ' verwenden

      Nochmals nein. Zahlentypen können auch mit Anführungszeichen abgefragt werden.

      Das Problem ist, dass mysql_select_db einfach keine SQL Statements ausführt.

      mfg
        frafu

      1. Nein. MySQL kennt auch && als logischen Operator.
        Nochmals nein. Zahlentypen können auch mit Anführungszeichen abgefragt werden.

        Nun ja, da ich ein Verfechter der Standardisierung bin, schreibe ich nunmal alle Statements so, wie sie in SQL aussehen würden.

        1. Hallo!

          Nun ja, da ich ein Verfechter der Standardisierung bin, schreibe ich nunmal alle Statements so, wie sie in SQL aussehen würden.

          Du hast Recht. Die Erweiterung der logischen Operatoren von MySQL ist eigentlich unnötig. Verwirrt nur und macht Migrationen unnötig schwer.

          mfg
            frafu

  2. Hallo!

    mysql_select_db("datenbank", "Update tabelle set feld='2' WHERE EAN='" . $_REQUEST['EAN_'.$i] . "' && seriennummer='" . $_REQUEST['seriennummer_'.$i] . "'");

    Doch leider kommt bei mir die Fehlermeldung :Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource

    Schau dir nochmal die Doku zu mysql_select_db an. Der Befehl erwartet keinen SQL Befehl, sondern eine MySQL Link resource. Und wie die Fehlermeldung schon sagt, ist der String keine Mysql Link resource.

    mfg
      frafu