Der Spalte order der tabelle "merchant_buylists" etwas zuweisen mittels UPDATE

FBIagent

Erfahrenes Mitglied
Wie schon im betreff geschrieben versuche ich etwas zuzuweisen ich weis auch wo der
Fehler liegt aber ich bekomme ihn nicht gefixt.
mysql_query("UPDATE `merchant_buylists` WHERE item_id=".$row['item_id']." SET order=".$count."");

PHP:
<?php
echo '<style type="text/css">body{scrollbar-base-color:#000000;scrollbar-arrow-color:#ff0000;scrollbar-highlight-color:#ff0000;scrollbar-track-color:#000000;}</style>';
// Verbindungsinfos 
$db_host="localhost"; 
$db_name="l2jdb"; 
$db_user=""; // <------- Hier bitte MySQL Login Name eingeben zwischen den gänsefüschen
$db_pw=""; // <-------- Hier bitte MySQL Passwort des oben eingeben Login Namens zwischen den gänsefüschen eingeben
 
// Mit DB verbinden 
$db_con = mysql_connect($db_host,$db_user,$db_pw); 
$connect=mysql_select_db($db_name,$db_con); 
 
//DB-Anfrage stellen 
$result=mysql_query("SELECT * FROM `merchant_buylists` WHERE shop_id=1"); // <-------- Die zahl hinter shop_id sagt aus welcher Shop durchnummeriert werden soll
$count=1;
while ($row=mysql_fetch_array($result)){ 
  mysql_query("UPDATE `merchant_buylists` WHERE item_id=".$row['item_id']." SET order=".$count."");
  echo "merchant_buylists: Item mit der ID ".$row['item_id']." wurde der Wert ".$count." in Spalte order zugewiesen.<br>Dies bezog sich auf Shop ID ".$row['shop_id']."<br><br>";
  $count++;
}
?>

Die Ausgabe sagt das alles gemacht wurde aber an den werten in der DB wurde nichts
verändert woran liegt das?

MFG FBIagent
THX im Vorraus
 
echo [phpf]mysql_error[/phpf];
Ich vermute mal, dass die Reihenfolge der Anweisungen im UPDATE wichtig ist. Dein Code gibt im Übrigen überhaupt nichts von dem aus, was tatsächlich gemacht wurde. [phpf]mysql_affected_rows[/phpf] gibt bei UPDATEs die Anzahl der tatsächlich manipulierten Zeilen zurück. Du verwendest diese Funktion jedoch nicht.

EDIT: Mir ist noch etwas aufgefallen:
order ist in MySQL ein reserviertes Wort, daher muss ein Feld, welches so benannt ist in sog. Backticks stehen (`order`).

Gruß hpvw
 
Zuletzt bearbeitet:
Nein!
Erst die Fehlermeldung herzeigen!
Den Backtick finde ich auf meiner Tastatur links neben dem Backspace, über "ü" und "+", dazu noch Shift drücken und dahinter ein Leerzeichen und schon erhält man einen Backtick.

Anführungszeichen: "
Hochkomma: '
Backtick: `

Gruß hpvw
 
Also ne Fehlermeldung gab es nicht. Aber jetzt es.
Ganz großes DANKESCHÖN.

Hier der fertige Code:
PHP:
<?php
echo '<style type="text/css">body{scrollbar-base-color:#000000;scrollbar-arrow-color:#ff0000;scrollbar-highlight-color:#ff0000;scrollbar-track-color:#000000;}</style>';
// Verbindungsinfos 
$db_host="localhost"; 
$db_name="l2jdb"; 
$db_user=""; // <------- Hier bitte MySQL Login Name eingeben zwischen den gänsefüschen
$db_pw=""; // <-------- Hier bitte MySQL Passwort des oben eingeben Login Namens zwischen den gänsefüschen eingeben
// Mit DB verbinden 
$db_con = mysql_connect($db_host,$db_user,$db_pw); 
$connect=mysql_select_db($db_name,$db_con); 
//DB-Anfrage stellen 
$result=mysql_query("SELECT * FROM `merchant_buylists` WHERE shop_id=1"); // <-------- Die zahl hinter shop_id sagt aus welcher Shop durchnummeriert werden soll
$count=1;
while ($row=mysql_fetch_array($result)){ 
   $item_id_value=$row['item_id'];
   mysql_query("UPDATE `merchant_buylists` SET `order`=$count WHERE `item_id`=$item_id_value");
   echo "merchant_buylists: Item mit der ID ".$row['item_id']." wurde der Wert ".$count." in Spalte order zugewiesen.<br>Dies bezog sich auf Shop ID ".$row['shop_id']."<br><br>";
   $count++;
}
?>
 
Mit
PHP:
echo mysql_error();
nach dem [phpf]mysql_query[/phpf] gab es mit ziemlicher Sicherheit eine MySQL-Fehlermeldung.
 
Zurück