Hallo an alle.
Ist mir schon fast peinlich, aber ich habe ein SQL-Problem.
Ich habe eine Tabelle, in der Artikel gesichert sind. Jeder Artikel hat eine Sortierungsnummer (von 0 bis Anzahlx10, also z.B. 0 bis 90). Wenn jetzt ein Artikel (z.B. der mit der Sortierungsnummer 40) gelöscht wird, sollen alle nachfolgenden Sortierungsnummern um 10 vermindert werden (weil sonst eine Sortierung in 10er-Schritten nicht mehr gewährleistet ist, dies ist wichtig für das spätere Ändern der Reihenfolge der Artikel durch den Nutzer). Aber irgendwie klappt das nicht.
Nachfolgend mein Code:
Danke im Voraus.
Innuendo
Ist mir schon fast peinlich, aber ich habe ein SQL-Problem.
Ich habe eine Tabelle, in der Artikel gesichert sind. Jeder Artikel hat eine Sortierungsnummer (von 0 bis Anzahlx10, also z.B. 0 bis 90). Wenn jetzt ein Artikel (z.B. der mit der Sortierungsnummer 40) gelöscht wird, sollen alle nachfolgenden Sortierungsnummern um 10 vermindert werden (weil sonst eine Sortierung in 10er-Schritten nicht mehr gewährleistet ist, dies ist wichtig für das spätere Ändern der Reihenfolge der Artikel durch den Nutzer). Aber irgendwie klappt das nicht.
Nachfolgend mein Code:
PHP-Code:
<?
require 'conf.inc.php';
$db = mysql_connect($cfg['mysql_host'],$cfg['mysql_user'],$cfg['mysql_pass']);
if (!$db) die ("Kann Server nicht erreichen");
mysql_select_db($cfg['mysql_db'],$db);
switch($status)
{
default:
?>
<table border="0" width="400" cellspacing="0" cellpadding="0">
<?
$sql = "SELECT * FROM bilder ORDER BY sort_nr ASC";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result))
{
?>
<tr>
<td align="left" width="50">
<? echo $row['id']; ?><br>
</td>
<td align="left" width="50">
<? echo $row['sort_nr']; ?><br>
</td>
<td align="right" width="50">
<a href="del.php?status=del&id=<? echo $row['id']; ?>&sort_nr=<? echo $row['sort_nr']; ?>">Löschen</a><br>
</td>
</tr>
<?
}
?>
</table>
<?
break;
case('del'):
if($id)
{
$sort_nr = $HTTP_GET_VARS['sort_nr'];
$sql = "SELECT * FROM bilder WHERE id='$id'";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result))
{
$id_now = $row['id'];
$sort_nr_now = $row['sort_nr'];
}
$sql1 = "SELECT * FROM bilder WHERE sort_nr > '$sort_nr_now' ORDER BY sort_nr";
$result1 = mysql_query($sql);
while ($row1 = mysql_fetch_array($result1))
{
$id_then1 = $row1['id'];
$sort_nr_then1 = $row1['sort_nr'] - 10;
$sql2 = "UPDATE bilder SET sort_nr = '$sort_nr_then1' WHERE id = '$id_then1'";
$result2 = mysql_query($sql2);
}
$sql = "DELETE FROM bilder WHERE id='$id'";
$result = mysql_query($sql);
?>
<table border="0" width="400" cellspacing="0" cellpadding="0">
<?
$sql = "SELECT * FROM bilder ORDER BY sort_nr ASC";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result))
{
?>
<tr>
<td align="left" width="50">
<? echo $row['id']; ?><br>
</td>
<td align="left" width="50">
<? echo $row['sort_nr']; ?><br>
</td>
<td align="right" width="50">
<a href="del.php?status=del&id=<? echo $row['id']; ?>&sort_nr=<? echo $row['sort_nr']; ?>">Löschen</a><br>
</td>
</tr>
<?
}
?>
</table>
<?
break;
}
}
?>
Innuendo
Kommentar