phpbar.de logo

Mailinglisten-Archive

Re: Auto-Increment-Probelm
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Auto-Increment-Probelm



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


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive