Id automatisch erzeugen

Hallo Leute,

  1. ich möchte, dass nach einem Registrierungsformular die dateien dieses Registrierungformular in eine MySQL tabell eingeschrieben werden. Nach dem der zweite user sich regstriert hat solll ich demnach seine Daten in die uzweite Zeile eingeschrieben werden und ihm automatisch die ID 2 gegeben werden. Und dann immer soweiter. Wisst ihr wie ich das mit diesem automatischem ID zuweisen hinbekommen kann.
  2. Kann ich auch verschiedene daten des selben scripts in zwei verschieden MySql Tabellen zeilen schreiben?
    Danke im Vorraus
    alex979k
  1. Schau mal nach „Autoincrement“
  2. Ja

Immer wieder gerne empfohlen: http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/chap4.htm

kann ich das [HTML]
id MEDIUMINT NOT NULL AUTO_INCREMENT, [/HTML]

irgendwie in mein PHP script einfügen?

Und wie kann ich die Daten in meinem script dann halt zu der nächsten ID zeile hinzufügen.

[PHP]if ($stmt = $mysqli->prepare(„INSERT INTO //hier soll es halt in die nächste Zeile der automatischen ID hinzgefügt werden (s,bla) VALUES (?)“))
if ($stmt2 = $mysqli->prepare(„INSERT INTO statistics (gefunden) VALUES (?)“)) {
{
$stmt->bind_param(„s“,$bla );
$stmt2->bind_param(„s“, $gefunden);
$stmt->execute();
$stmt->close();
$stmt2->execute();
$stmt2->close();
$mysqli->close();
}
[/PHP]

  1. Ist das mit den zwei verschiedenen Mysql zeilen so richtig?

Tu Dir einen Gefallen und eigne Dir die Grundbegriffe von PHP, MySQL, CSS und HTML an. Deine Fragen lassen erkennen, daß Du gar keine Idee hast, was diese Programme oder Sprachen überhaupt machen. Es gibt prima Tutorials im Internet und es gibt auch gute Bücher.

ich hab ein PHP MYSQL Fahcbuch gelesen!
Ich wollte nur Dinge wissen die nicht im Buch stehen und sorry das ich keine Fachausdrücke kenne!

Dann lies dir die Seiten durch auf denen die Begriffe erklärt werden.
MySQL :: MySQL 5.1 Referenzhandbuch :: 3.6.9 Verwendung von AUTO_INCREMENT

Das ist aber alles MySQL Code.
Wie kann ich das in meine PHPverarbeitung einbinden?

Den musst Du anwenden wenn Du die Datenbanktabelle erstellst. Nicht wenn Du Datensätze in diese einfügst. Sollte durch Lesen im Manual (Link oben) klar werden.

Achso alles klar danke :slight_smile:
Aber wenn ich mein PHP Script habe was muss ich dann bei der Stelle //Hier einfügen damit es immer automatisch in eine neue Zeile eingefügt
[ul]
[li] http://www.html.de/image/gif;base64,R0lGODlhDwAPALMMAP/qAEVFRQAAAP/OAP/JAP6dAP+0AP/+k//9E///x//lAP//6wAAAAAAAAAAAAAAACH5BAEAAAwALAAAAAAPAA8AAARYkEkZap2Y1ZXOGRcWcAgCnEMRTEEnnKcgpKt2vHAOaokJ4L8TQRU4+IA4gqFyyDkByorvKVwGBtSTYri6/mRgAWGnGQwUuS2NZSa43WtRwEA3EDMsS20SAQA7 [/li]
[/ul]
?[PHP]if ($stmt = $mysqli->prepare(„INSERT INTO //hier soll es halt in die nächste Zeile der automatischen ID hinzgefügt werden (s,bla) VALUES (?)“))
if ($stmt2 = $mysqli->prepare(„INSERT INTO statistics (gefunden) VALUES (?)“)) {
{
$stmt->bind_param(„s“,$bla );
$stmt2->bind_param(„s“, $gefunden);
$stmt->execute();
$stmt->close();
$stmt2->execute();
$stmt2->close();
$mysqli->close();
} [/PHP]
webber979

gar nichts, das macht die Datenbank automatisch (und um die nächste Frage zu beantworten: PHP: mysql_insert_id - Manual)

Wenn man in mySQL eine neue Tabelle erstellt, gibt es eine Option die sich „auto_increment“ nennt. Wenn man diese Option aktiviert erhöht sich der Wert des Feldes immer automatisch um 1 (meistens ist das die ID).

Ah ok Danke Struppi

  1. heißt das ich muss in etwa sowtwas schreiben?
    [PHP]

mysql_insert_id()=$id

if ($stmt = $mysqli->prepare(„INSERT INTO mysqltabelle WHERE id=$id (s,bla) VALUES (?)“))
{ $stmt->bind_param(„s“,$bla );
$stmt->execute();
$stmt->close();
if ($stmt = $mysqli->prepare(„INSERT INTO statistics (gefunden) VALUES (?)“)) {
{ $stmt->bind_param(„s“, $gefunden);
$stmt->execute();
$stmt->close();
$mysqli->close();
}
} [/PHP]
oder lass ich das feld einfach frei

[PHP]

if ($stmt = $mysqli->prepare(„INSERT INTO mysqltabelle (s,bla) VALUES (?)“))
{ $stmt->bind_param(„s“,$bla );
$stmt->execute();
$stmt->close();
if ($stmt = $mysqli->prepare(„INSERT INTO statistics (gefunden) VALUES (?)“)) {
{ $stmt->bind_param(„s“, $gefunden);
$stmt->execute();
$stmt->close();
$mysqli->close();
}
} [/PHP]

  1. Kann das mit den 2 $stmt so funktionieren?

3.Wenn ich jetzt bei [PHP]$stmt->bind_param(„s“, $gefunden);[/PHP] Keinen String sondern etwas gemischtes mit Zeichen und Nummern einbinden will was brauch ich dann für einen Buchstaben?

Wär echt nett wenn ihr mir das beantworten könntet.

Dein 2. Code stimmt bzgl. dem Statement. Der erste ist falsch.

Natürlich kannst Du eine Variable (in deinem Fall $stmt) neu belegen. Aber erst wenn Du den vorherigen Wert nicht mehr benötigt. Das ist bei deinem Code ja der Fall.