Hallo an alle,
eigenartiges Problem: ein Codeschnipsel, der in keiner Schleife liegt, sondern für sich allein steht, wird offenbar doppel durchlaufen. Es ist in jede Fall browserunabhängig, FF und IE erzeugen das gleiche Verhalten. Kennt jemand dieses Phänomen. Vielleicht bin ich auch einfach nur zu blind.
// change sort order up
if(isset($_GET['categories_up'])) {
$categories_up = mysql_real_escape_string($_GET['categories_up']);
// get the current sort order
$categories_up_sort_order_query = mysql_query("SELECT categories_sort_order FROM categories WHERE categories_id = '$categories_up'");
while($row = mysql_fetch_object($categories_up_sort_order_query))
{
$categories_up_sort_order = $row->categories_sort_order;
}
// set category with sort order +1 to sort order -1
$categories_next_sort_order = $categories_up_sort_order + 1;
echo $categories_up_sort_order . $categories_next_sort_order;
$update_categories_next = "UPDATE categories SET categories_sort_order = '$categories_up_sort_order' WHERE categories_sort_order = '$categories_next_sort_order' && categories_parent = '$categories_parent'";
$update = mysql_query($update_categories_next);
// set own sort order 1 up
$update_categories_up = "UPDATE categories SET categories_sort_order = categories_sort_order + 1 WHERE categories_id = '$categories_up'";
$update = mysql_query($update_categories_up);
// nur zum testen, ob das Script doppelt durchlaufen wird, oder ob die db-operationen fehlerhaft sind
$fp = fopen('log.txt', 'a');
fputs($fp, 'X');
fclose($fp);
// output success
$message = 1;
output_success();
} // if(isset($_GET['categories_up']))
Auf der ganzen Seite finden sich mehrere solcher Segmente, die jedoch alle voneinander getrennt sind. Dies ist auch das einzige, das doppelt abgearbeitet wird. Alle anderen arbeiten einwandfrei.
Auf dem Server läuft php 4.3.8
Dank an alle, die sich das mal ansehen.