Hallo an alle.
Nachfolgend mein Skriptversuch für das Ändern der Reihenfolge von Datensätzen innerhalb einer SQL-Tabelle. Irgendwelche Optimierungsideen?
Nachfolgend mein Skriptversuch für das Ändern der Reihenfolge von Datensätzen innerhalb einer SQL-Tabelle. Irgendwelche Optimierungsideen?
PHP-Code:
<?
function show_data()
{
$sql = "SELECT id, article_order, header FROM test ORDER BY article_order ASC";
$result = mysql_query($sql);
while ($row = mysql_fetch_row($result))
{
echo '<b>ID:</b> '.$row[0].'<br>';
echo $row[1].'<br>';
echo $row[2].'<br>';
echo '<br><b>Verschieben:</b> <a href="red.php?mode=sort_up&id='.$row[0].'">Nach oben</a> | <a href="red.php?mode=sort_down&id='.$row[0].'">Nach unten</a><br><br>';
}
}
$db = mysql_connect("localhost","user","pass");
if (!$db) die ("Kann Server nicht erreichen");
mysql_select_db("tabelle",$db);
switch($mode)
{
default:
show_data();
break;
case 'sort_up':
$sql1 = "SELECT id, article_order FROM test WHERE id='$id'";
$result1 = mysql_query($sql1);
while ($row1 = mysql_fetch_row($result1))
{
$id_now = $row1[0];
$article_order_now = $row1[1];
}
$sql2 = "SELECT id, article_order FROM test WHERE article_order = $article_order_now - 10";
$result2 = mysql_query($sql2);
while ($row2 = mysql_fetch_row($result2))
{
$id_then = $row2[0];
$article_order_then = $row2[1];
mysql_query("UPDATE test SET article_order = '$article_order_then' WHERE id = '$id_now'");
mysql_query("UPDATE test SET article_order = '$article_order_now' WHERE id = '$id_then'");
}
/* Dateninhalte wieder anzeigen */
show_data();
break;
case 'sort_down':
$sql1 = "SELECT id, article_order FROM test WHERE id='$id'";
$result1 = mysql_query($sql1);
while ($row1 = mysql_fetch_row($result1))
{
$id_now = $row1[0];
$article_order_now = $row1[1];
}
$sql2 = "SELECT id, article_order FROM test WHERE article_order = $article_order_now + 10";
$result2 = mysql_query($sql2);
while ($row2 = mysql_fetch_row($result2))
{
$id_then = $row2[0];
$article_order_then = $row2[1];
mysql_query("UPDATE test SET article_order = '$article_order_then' WHERE id = '$id_now'");
mysql_query("UPDATE test SET article_order = '$article_order_now' WHERE id = '$id_then'");
}
/* Dateninhalte wieder anzeigen */
show_data();
break;
}
?>
Kommentar