id eines feldes
Marc
- datenbank
Hallo,
probier mich heut das erste mal ein bißchen in sql, nun möchte ich gern via php datensätze erstellen z.bsp id, name, ip wobei id immer um eins erhöht werden soll. wie muss die query aussehen?
mysql_query
("INSERT INTO entries(id,name,ip)
VALUES( MEINE_FRAGE,'".$_POST['name']."',
'".$_SERVER['REMOTE_ADDR']."')
GREEEZ Marc
Hell-O!
nun möchte ich gern via php datensätze erstellen z.bsp id, name, ip wobei id immer um eins erhöht werden soll.
http://dev.mysql.com/doc/refman/4.1/en/example-auto-increment.html
Siechfred
Hi,
das hängt ganz vom Datenbanksystem und dem gewählten Datentyp für die ID-Spalte ab. Die gängige Praxis (sofern unterstützt) sind AutoWerte/auto_increment-Spalten. Diese ignorierst du einfach beim Insert, die Datenbank füllt den nächsten Wert automatisch ein (z.B. INSERT INTO entries (name,ip) VALUES...)
Verzichtest du auf derartige Mechanismen musst du den Wert selber bestimmen, z.B. indem du ein SELECT MAX(id) FROM entries machst, den Wert ausliest, um 1 erhöhst und anschließend wieder angibst. In diesem Fall besteht aber die Gefahr darin, dass verschiedene Skripte die gleichzeitig diesen Vorgang durchlaufen die selbe ID vergeben.
MfG
Rouven
Hallo,
das mit dem autoincrement klappt prima, hab mal ein paar eintraege gemacht wenn ich diese wieder lösche zählt sql trotzdem so weiter als wären sie noch da, das ist bei manchen anwendungen sicher von vorteil da die zuordnung bzgl. des indexes erhalten bleibt, aber ich will das unter id auch wirklich nur die fortlaufende nummer angezeigt wird. Wenn das so nicht geht, gibt es eine möglichkeit die id wieder auf einen bestimmten wert zu setzen(wenn man z.bsp. eintraege gelöscht hat?)
MFg Marc
hi,
das mit dem autoincrement klappt prima, hab mal ein paar eintraege gemacht wenn ich diese wieder lösche zählt sql trotzdem so weiter als wären sie noch da, das ist bei manchen anwendungen sicher von vorteil da die zuordnung bzgl. des indexes erhalten bleibt, aber ich will das unter id auch wirklich nur die fortlaufende nummer angezeigt wird.
Dann zähle selber eine fortlaufende Nummer hoch.
Eine ID dient einzig und allein zur eindeutigen Identifizierung eines Datensatzes, und zu nichts anderem.
Wenn das so nicht geht, gibt es eine möglichkeit die id wieder auf einen bestimmten wert zu setzen(wenn man z.bsp. eintraege gelöscht hat?)
M.W. nur durch umkopieren der Daten in eine neue Tabelle, wobei man die ID-Werte außen vor lässt.
gruß,
wahsaga