Schnelle ID- Abfrage
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
bearbeiten
code
datenbanksystem
datensatz
einfachere methode
eins
feld
frage
hilfe
letzten datensatz
liebe gemeinde
schlechteste idee
sinnvoller code
spalten
stottern
tabelle
tag
umstellen
url
zahl
-
Hallo, tag/liebe gemeinde">liebe Gemeinde,
wieder mal eine Anfängerfrage von mir.
Wenn ich in meine Tabelle einen neuen Datensatz zufüge muss ich ihm, um ihn später eventuell zu bearbeiten usw., eine neue id zufügen. Dazu lasse ich zur zeit die ganze Tabelle mit while durchlaufen um bis zum letzten Datensatz zu gelangen und addiere dann der id eins dazu.
Nun meine Frage, gibt es eine einfachere Methode diesen Datensatz, und damit die letzte ID direkt abzufragen?
Vielen Dank für eure Hilfe, schönen Tag noch,
Frank -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
zhd-dresden schrieb:
Hallo, liebe Gemeinde,
wieder mal eine Anfängerfrage von mir.
Wenn ich in meine Tabelle einen neuen Datensatz zufüge muss ich ihm, um ihn später eventuell zu bearbeiten usw., eine neue id zufügen. Dazu lasse ich zur zeit die ganze Tabelle mit while durchlaufen um bis zum letzten Datensatz zu gelangen und addiere dann der id eins dazu.
Nun meine Frage, gibt es eine einfachere Methode diesen Datensatz, und damit die letzte ID direkt abzufragen?
Vielen Dank für eure Hilfe, schönen Tag noch,
Frank
Du kannst einer Spalten die Eigenschhaft A/I (auto increment) geben. Da wird autmatisch immer eine höhere zahl genommen (einfach beim INSERT das feld leer lassen). Bzgl. Deines vorschlages: es geht auch viel eingacher mit mysql_num_rows
Beitrag zuletzt geändert: 11.6.2015 15:55:50 von mczernin -
mysql_num_rows ist die überhaupt schlechteste Idee, die du haben kannst. Da wäre es selbst noch sinnvoller nach der ID absteigend zu sortieren und per
nur die erste Zeile abzufragen (die dann natürlich die letzte ID enthält), oder gar mitLIMIT
direkt die größte ID abfragen.max(id)
Für eine ID wär es aber vermutlich sinnvoller
zu nutzen, wie bereits erwähnt wurde.AUTO_INCREMENT
-
Vielen Dank für eure Mühen.
mysql_num_rows ist wirklich nur dann angebrauch, wenn man nicht mal zwischendurch auch wieder Datensätze löschen wil/muss. Da bin ich schon mal damit auf die Nase gefallen.
Aber dazu gleich noch mal eine nächste Frage,
wenn ich AUTO_INCREMENT nehme, und ich lösche im Nachhinein Datensätze, zählt er dann weiterhin einen Wert dazu, oder fängts an zu "stottern" wenn zwischendurch eine Zahl fehlt?? -
zhd-dresden schrieb:
... wenn ich AUTO_INCREMENT nehme, und ich lösche im Nachhinein Datensätze, zählt er dann weiterhin einen Wert dazu, oder fängts an zu "stottern" wenn zwischendurch eine Zahl fehlt??
Hey,
wird ein Datensatz gelöscht, wird dieser Indexwert nie wieder gesetzt. Es wird IMMER der nächste Wert genommen. Auch wenn du den letzten Datensatz gelöscht hast ist der neue Index wieder der Nächste Indexwert. Sprich der Indexzähler der Tabelle wird im Datenbanksystem gespeichert.
Siehe dazu auch:
http://de.wikipedia.org/wiki/Datenbankindex
MFG Micha -
Vielen Dank für eure Hilfen. Das A/I ist eine super Sache, hab gerade damit rum experimentiert. Klappt genau wie von euch beschrieben. Muss nun allerdings die meine Tabellen (wo gottseidank noch nicht sooo viel drin steht) wieder leeren, denn nur so kann ich das Feld umstellen.
Ich danke euch wie verrückt, das spart eine Menge Schreibarbeit für die Zukunft.
Euch allen eine schöne Woche, ihr seid meine Helden.
Liebe Grüße Frank.
PS:
Jetzt hab ich auch mal einen kleinen Tip.
Das ID-Feld lässt sich nur dann nicht im Nachhinein in A / I ändern, wenn man selber mit 0 angefangen hat zu zählen. In dem Fall nur das 0te Feld löschen und kann man die Datensätze behalten .
Falls es jemanden helfen könnte.
Beitrag zuletzt geändert: 11.6.2015 17:08:49 von zhd-dresden -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage