MySQL: Problem mit dem update-Befehl

Chili-Joe

Mitglied
Ich hab eine MySQL-Tabelle für Bilder mit den Werten:
id,
entrie_id,
order,
name,
description,
active

EIn Beispiel wie die Tabelle ausieht:
123
25
3
3.jpg
bla
1

Mein Problem:
Die Spalte "order" ist erst frisch dazu gekommen und hat in jeder Zeile den Wert "0".
Das Script sollte mir jetzt eigentlich nur helfen, dass ich nich jede einzelne Zeile editieren muss. Aber irgendwie funktioniert das Ding nich so, wie ich es mir gedacht habe... Es macht nämlich überhaupt nichts. Würde mich über schnelle Hilfe sehr freuen.

Probier schon seit mehreren Stunden darum herum, aber irgendwie will das Scrpit einfach nich. Hab auch schon im Forum nach ähnlichen Problemen gesucht, diese versucht abzukupfern, aber es will einfach nich.


<?

include('config.php');
include('auth.php');

$get_report_images=mysql_query("select * from report_images");

while ($report_images=mysql_fetch_object($get_report_images))
{

if($report_images->order==0)
$order = explode(".",$report_images->name);

@mysql_query("update report_images set order = $order[0]") or die("Beim Update ist ein Fehler aufgetreten!");

}

?>


Ich hoffe mir kann eineR helfen...
 
ich denke mal es liegt grundsätzlich an der Syntax:

"UPDATE table SET `spalte` = '$variable'";

Was auch öfters bei mir Probleme gemacht hat, war, wenn die Variable bei der Verwendung nicht "fertig" ist.

Versuch mal den Character schon vor dem Query in eine Variable zu speichern und dann das Query zu starten
 
Ich hab es mal ganz simpel versucht:

@mysql_query("update report_images set order = '1'") or die("Beim Update ist ein Fehler aufgetreten!");

Selbst dort zeigt er mir die Fehlermeldung an...
Es handelt sich bei den upzudatenden Zeilen um 533.

Ich habe grade, auch mal zum Test die Anzahl der zubearbeitenden Zeilen durch ein "where entrie_id = '2'" eingeschränkt, allerdings mag der dies genauso wenig, wie die unzähligen Versuche zuvor...

(MySQL 4.0.24_Debian-2-log, vieleicht hilft das ja irgendwie weiter...)
 
Zuletzt bearbeitet:
Probier mal
PHP:
mysql_query("update report_images set `order` = '".$order[0]."'")
Order ist ein reserviertes Wort und muss deshalb in Backticks.
 
Zuletzt bearbeitet:
Dieses Script ist immer für eine Überraschung gut...
Die Fehler-Meldung ist dank der Backticks verschwunden (danke, erstmal), allerdings hat das Script jetzt in jede "order-Zeile" eine 41 eingetragen...

Fragt mich bitte nich warum...

Aktuallisiert mensch es einmal steht in jeder Zeile wieder eine 0.
Aktuallisiert mensch es ein zweites mal steht in jeder Zeile wieder eine 41...

Hab schon kurz nach dem Fehler gesucht, allerdings nichts gefunden...
 
PHP:
$get_report_images=mysql_query("select order,name from report_images");

while ($row=mysql_fetch_array($get_report_images))
{

if($row['order']==0){
   $order = explode(".",$row['name']);
   // die Query muss natürlich auch noch in die Bedingung
   @mysql_query("update report_images set `order` = '".$order[0]."'") or die("Beim Update ist ein Fehler aufgetreten!");
}

}
 
Zuletzt bearbeitet:
German, danke für deine Bemühungen, aber es geht immer noch nicht.

Ich habe es jetzt mal zurecht gestutzt, da ja jede "order-Zeile" jetzt den gleichen Wert hat:

PHP:
<?  
include('config.php'); 
include('auth.php');  

$get_report_images=mysql_query("select `order`,name from report_images");  

while ($row=mysql_fetch_array($get_report_images)) 
{ 
$order = explode(".",$row['name']);  

@mysql_query("update report_images set `order` = '".$order[0]."'") or die("Beim Update ist ein Fehler aufgetreten!"); 
 }

?>

Das Script trägt in jede Zeile eine 41 ein... WIe kommt sowas? Sowas hatte ich noch nie...
 
Probiers mal so:
PHP:
<?  
include('config.php'); 
include('auth.php');  

$get_report_images=mysql_query("select `order`,name from report_images");  

while ($row=mysql_fetch_array($get_report_images)) 
{ 
@mysql_query("update report_images set `order` = '".str_replace ('.jpg', '', $row['name'])."'") or die("Beim Update ist ein Fehler aufgetreten!"); 
 }

?>
oder noch einfacher
PHP:
@mysql_query("update report_images set `order` = REPLACE(name,'.jpg','')") 
or die("Beim Update ist ein Fehler aufgetreten!");
 
Zuletzt bearbeitet:
Zurück