Mailinglisten-Archive |
Andre Krajnik wrote:
>
> wie kann ich erreichen, daß ein Primary-Index namens Zaehler mit der
> auto_increment-Funktion regelmäßig so aktualisiert wird, daß die duch
> Datensatz-Löschungen entstandenen Lücken wieder aufgefüllt werden. Also
> eine Funktion, um die Datensätze wieder neu durchzunummerieren.
>
Ich hatte ähnliches Problem und habe es so gelöst:
Ich benutze PHP. Läßt sich sicherlich auf alles andere umschreiben.
<snip>
// Lösche Datensatz
if ($id > 0)
{
mysql_connect("localhost","user","passwort");
mysql_select_db("datenbank");
$sql="SELECT id FROM ".$tabelle."de WHERE id = ".$id;
$result = mysql_query($sql);
$anzahl = mysql_num_rows($result);
if ($anzahl==1)
{
// Lösche DS mit der gesuchten ID
$sql="DELETE FROM ".$tabelle." WHERE ID = ".$id;
$result = mysql_query($sql);
// Gehe durch alle Datensätze und schreibe das
// Feld "ID" neu
$sql="SELECT * FROM ".$tabelle." ORDER BY id";
$result = mysql_query($sql);
$anzahl = mysql_num_rows($result);
$i=1;
while ($row = mysql_fetch_array($result))
{
$sql="UPDATE ".$tabelle;
$sql=$sql." SET ID='".$i;
$sql=$sql."' WHERE ID=".$row[0];
$i=$i+1;
$usql[]=$sql;
}
for($k=1;$k<$i;$k++)
{
$update = mysql_query($usql[$k]);
}
}
mysql_close();
}
</snip>
Ich hoffe es löst Dein Problem.
Gruß
--
Gunther Grelczak, Elektronik - Multimedia und Internet
Deutsches Museum * Museumsinsel 1 * D-80538 München
T:+49.89.2179349 F:+49.89.2179326 http://141.84.72.45
---
*** Abmelden von dieser Mailingliste funktioniert per E-Mail
*** an mysql-de-request_(at)_lists.4t2.com mit Betreff/Subject: unsubscribe
php::bar PHP Wiki - Listenarchive