phpbar.de logo

Mailinglisten-Archive

auto_increment "reseten" ?

auto_increment "reseten" ?

Gunther Grelczak mysql_(at)_lists.phpcenter.de
Mon, 01 Oct 2001 08:08:29 +0200


Pete 'Baldur' Hillebrand wrote:
> 
> Allerdings möchte ich, auch wenn aus der Mitte eine Zeile gelöscht wird, dass
> mit Hilfe von auto_increment die "Lücken gefüllt" werden.
> 
Auch auf die Gefahr hin, daß ich jetzt gesteinigt werde, ich mache
es immer so (s.u.). Die ID ist bei mir nur zur einzigartigen,
eindeutigen
Identifizierung und deshalb lösche ich den entsprechenden DS und
Update dann meine Tabelle. Wenn jemand einen eleganteren Ansatz
weiß, bin ich dankbar für jeden Tip.

<---snip aus einem PHP--->

//*********************************************************************************
//*Datensatz löschen
//*********************************************************************************

if ($id > 0)
{
	mysql_connect($host,$user,$passwd);
	mysql_select_db($datenbank);

	$sql="SELECT id FROM ".$tabelle." WHERE id = ".$id;
	$result = mysql_query($sql);
	$anzahl = mysql_num_rows($result);
	if ($anzahl==1)
	{
		$sql="DELETE FROM ".$tabelle." WHERE ID = ".$id;
		$result = mysql_query($sql);

		$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 aus einem PHP--->

Gruß
-- 
Gunther Grelczak, Elektronik - Multimedia und Internet
Deutsches Museum * Museumsinsel 1 * D-80538 München
T:+49.89.2179349 F:+49.89.2179326

---
!!NEU!!
Fragen und Antworten zu MySQL und dieser Liste unter
-->>  http://www.4t2.com/mysql 



php::bar PHP Wiki   -   Listenarchive