ich lege eine Datenbanktabelle in, die die Spalten ID, name und content enthalten soll.
Jetzt möchte ich die ID per Auto_increment hochzählen lassen jedoch wenn eine Zeile gelöscht wird in deer gleichen reihen folge( 1,2,3,4,5,6,7,8,9…) beibehalten.
Wie kann ich dies erreichen?
Ich dachte an ein verfahren wie
1)SELECT ID von der zeile die gelöscht wird
2)DELETE die Zeile die gelöscht werden soll
3)UPDATE * ID //alle IDs in der Tabelle WHERE ID > $selectedID -1 //die größer sind um eins vermindern
Hab aber keine genaue vorstellung für einen Code der die 3) ausführen kann. Könnt ihr mir helfen?
(Ich weiß das der Code nocht ganz richtig ist, sollte auch nur eine Skizze werden.)
Jetzt möchte ich die ID per Auto_increment hochzählen lassen jedoch wenn eine Zeile gelöscht wird in deer gleichen reihen folge( 1,2,3,4,5,6,7,8,9…) beibehalten.
Das kann aber ein großes Problem mit sich bringen!
Wenn du die ID eines Datensatzes dieser Tabelle als Referenz in einer anderen Tabelle nutzt, kann es beim Neuzuweisen der ID als fortlaufende Zahl in der ersten Tabelle, zu falschen Datensatzabfragen in der zweiten Tabelle kommen, wenn dort noch die alte ID eines Datensatzes drin ist, statt der neuen ID!
In meinem Fall bringt das RESET des AutoIncrements nichts, weil die id’s in der Tabelle zu jeder Zeit die Reihenfolge sein müssen und nicht erst wenn ein neuer datensatz eingefügt wird.
Diese id reihenfolge wird nämlich in etlichen for-schleifen benötigt.
Ich muss bezüglich einer for-schleife array element nummer zugreifen, ich hab sie mal mit „DIE HIER“ makiert.
Wie kann ich darauf zugreifen.
Da letztenendes die nummer bei einer ausgabe wie dieserecho $newarray[0]["name"];
$id entspricht aber nicht dem numerischen Array sondern der id.
Kann ich auch ganz einfach den teil newarray = array();
while( $row = mysql_fetch_array ($result) ) {
$newarray[$row["id"]] = $row;
}
weglassen und auf den array element contetn zugreifen über