ID-nummer gerniereien und in DB speichern?

harderph

Erfahrenes Mitglied
Moinsen!

SOO ich weiss nicht ob ich es verständlich erklären kann, also los!

ich habe folgene ID-NR 0000001 in der datenbank!
Jetzt kommt ein neuer eintrag soll dann ID-NR 0000002 sein u.s.w
dabei werden die vorherigen nicht gelöscht also INSERT

lange zahlen sind mit absicht da es vergleichs nummer sind will aber das sie immer ein höher gehen wenn ein neuer eintrag passiert!
Oder eine zufällige nummer die mit der DB vergleicht wird ob es sie schon gibt oder nicht!
Da kann ich nicht mehr klar denken den ich weiss nicht wie ich das machen soll!

Dies dient dafür um Postnachrichten zu identefezieren dies ist einer von drei variablen! die mit der URL mitgeliefert wird!
Wenn mir jemand helfen könnt wäre das soo cool
 
Was Du suchst, ist "auto-increment". Wenn ein Datenbankfeld der Tabelle auf auto-increment steht, zählt sie (bei 1 beginnend) bei jedem INSERT-Befehl das Feld automatisch immer um 1 hoch.

Wenn Du eine längere Zahl mit immer der gleichen Anzahl an Ziffern ausgeben möchtest, könntest Du das so realisieren:

echo "ID-NR ".sprintf ("%07d", $row['id']);
 
wie genau soll ich damit jetzt die DB damit überprüfen und dann eine neue ID generieren ( immer +1 ) ! man könnte ja auch eine zufällige zahl generieren und eintragen aber auch wenn es 7 stellig ist kann die zahl sich ja wieder holen und das sit das was ich verhindern möchte! ich bin momentarn an meine grenzen gestossen und weiss im dem falle nihct weiter!
 
Hallo,

mit MySQL würde das so aussehen:
Code:
mysql> CREATE TABLE tabelle (
    -> id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    -> data TEXT);
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO tabelle (data) VALUES ('foo'), ('bar'), ('baz');
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> SELECT * FROM tabelle;
+----+------+
| id | data |
+----+------+
|  1 | foo  | 
|  2 | bar  | 
|  3 | baz  | 
+----+------+
3 rows in set (0.00 sec)
Entscheidend ist hier die Eigenschaft AUTO_INCREMENT beim Erstellen der Tabelle.

Grüße,
Matthias
 
wie genau soll ich damit jetzt die DB damit überprüfen und dann eine neue ID generieren ( immer +1 ) ! man könnte ja auch eine zufällige zahl generieren und eintragen aber auch wenn es 7 stellig ist kann die zahl sich ja wieder holen und das sit das was ich verhindern möchte! ich bin momentarn an meine grenzen gestossen und weiss im dem falle nihct weiter!

Du brauchts die ID nicht überprüfen, das erledigt MySQL für Dich.

Eine Datenbankanweisung für so eine Tabelle mit autoincrement sieht z.B. so aus:

Code:
CREATE TABLE `test` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`text` VARCHAR( 255 ) NOT NULL
)

Wenn Du PHPMyAdmin (sehr zu empfehlen) hast, kannst Du bei der Erstellung unter "extra" "auto_increment" auswählen. Du brauchts Dich um nichts weiter zu kümmern. Beim Auslesen der Datensätze kannst Du mit sprintf wie oben beschrieben Deine Zahl so formatieren, wie Sie Dir gefällt. Wenn Du beim Speichern des Datensatzes die Zahl schon wissen musst, bekommst Du sie mit dem PHP-Befehl mysql_insert_id() raus.
 
Zurück