Wieder ein Loch

Blattspinat

Erfahrenes Mitglied
folgendes: wenn ich aus meiner MySQL Tabelle nun eine Zeile lösche die die ID 5 hat, und dann eine neue hinzufüge, dann nimmt er anstatt der 5 die 6 (autoincrement) ... er nimmt also jeden wert nur ein mal, auch wenn er nicht mehr da ist, aber mal existierte ... hat das was mit der option "Einzigartig" zu tun?
 
jo am besten ist du schaltes das autoincement ab ... und baust die ids selber

$erg = mysql_query("selec * from tab");
$neueid = mysql_num_rows() + 1;
$erg = mysql_query("insert into tab(id) values('$neueid')");
 
hmmm ... da sist sicher eine lösung, aber ich hab 56 Einträge ... die alle nomma zu posten fänd ich doof ... kann man da net einfach das "einzigartig" abschalten?
 
nee du brauchst nix neu einzugeben
einfach mit phpmyadmin das autoincrement abschalten das einzigartig(uniqe) kannste an lassen

nachtrag
bei meine mysqlvesion kann man das sogar das autoincrement anlassen wenn du beim insert ein id wert übergibst dann nimmt er den ....
 
jo stimmt is mir auch klar geworden aber noch de frage ... warum funzt das nicht??

Code:
$dbverbindung = mysql_connect ($host, $user, $password);

mysql_query("select * from $tabelle"); 

$neueid = mysql_num_rows() + 1; 

$dbanfrage = "INSERT into $tabelle values ('$neueid', '$Array[url]')";


if (mysql_db_query ($dbname, $dbanfrage, $dbverbindung)) {
print ("

<center>

<table border=0 cellspacing=1 cellpadding=4 bgcolor=82A9D2>
<tr>
<td width=600 bgcolor=FFFFFF align=center>

<font size=2 face=Verdana>
Bild erfolgreich hinzugefügt!<br><br>
<a href=index.php?$session_name()=$session_id()?>[ Index ]</a>
</font>

</td>
</tr>
</table>
</center>

");
} else {
print ("Es traten Probleme auf.");
}
mysql_close ($dbverbindung);

wenn ich mir $neueid anschaue, dann gibt er immer den wert 1 aus und er bringt den fehler, weil 1 ja schon exisitert ...

aber warum immer 1 ?? Ich hab das gefühl, dass er den wert per mysql_num_rows erst gar net bekommt ...
 
ich sehe gar keine mysql_db die ausgewaehlt wird/wurde..

PHP:
$dbverbindung = mysql_connect ($host, $user, $password);
mysql_select_db($datenbank);

mysql_query("select * from $tabelle"); 

$neueid = mysql_num_rows() + 1; 

$dbanfrage = "INSERT into $tabelle values ('$neueid', '$Array[url]')";

.....

willst Du wirklich alle daten aus der db selecten? (select * from...), denke nicht, es ist performanter, wenn Du angibst was Du aus der db selecten moechtest. (select id from ...) ..

if (mysql_db_query ($dbname, $dbanfrage, $dbverbindung))

mhhh, was soll die if() abfrage bewirken? *g* ... fuer INSERT, UPDATE .. nimmt man mysql_affected_rows() ..

PHP:
if(mysql_affected_rows() == 1) {
 
Zuletzt bearbeitet:
-

Ich würds ganz lassen, die ID von Hand zu setzen. Und wenn du bei der Ausgabe deine Inhalte durchnummerieren willst, dann mach das in der jeweilige Sprache.
 
?? ich brauch die durchnumerierung ... weil das spätere script die IDs fortlaufend braucht... und die jeweilige sprache?
 
-

Du kannst doch bei der Ausgabe mitzählen, wo du dich gerade befindest. Das würde ich nicht von der Id abhängig machen, sondern sie nur für eindeutige Zuweisungen/Abfragen nutzen.
 
Zurück