Ich habe eine Frage: "Daten in eine andere Tabelle einfügen, aber dieselbe ID (auto_increment) haben"
Dies ist mein zweimaliger Tisch

Student

----------------------
id | Name | Klasse |
----------------------

Punktzahl

-----------------------------------------
id | Mathe | englisch | physisch | Jahr |
-----------------------------------------

Ich habe einige Daten wie:
John, A, 90, 80, 70, 2015
John, A, 70, 90, 50, 2016

Ich möchte Ergebnis wie:

Student

----------------------
id | Name | Klasse |
----------------------
1 | John | A |
----------------------

Punktzahl

-----------------------------------------
id | Mathe | englisch | physisch | Jahr |
-----------------------------------------

1 | 90 | 80 | 70 | 2015
1 | 70 | 90 | 50 | 2016

Da die Tabelle der "ID" des Schülers Auto_increment verwendet

Wenn ich möchte, dass die Tabelle beim Einfügen von Daten zweimal dieselbe ID hat

Welches SQL kann ich verwenden?
(Ich denke, mysql_insert_id() ist eine Lösung, aber nicht sicher ...)

Danke Hilfe !!

0
Sgt.yang 2 Jän. 2016 im 17:13

2 Antworten

Beste Antwort

Ich hoffe, Sie suchen nach der Abfrage, um dies zu tun. Verwenden Sie zuerst PDO oder mysqli für die Interaktion mit der Datenbank. Hier verwende ich PDO.

function my_select($query)
{
    global $dbserver,$dbuser,$dbpwd,$dbname;
    $dbh= new PDO('mysql:host='.$dbserver.';dbname='.$dbname.'',$dbuser,$dbpwd);
    $rs=$dbh->prepare($query); //prepared statements have numerous advantages over executing sql statements directly
    $rs->execute(); 
    return $db->lastInsertId(); //returns last inserted id of current db connection
}

Und die Abfrage kann sein,

$l_id=my_select(query1)   // query to insert into student
$query2="INSERT INTO score (id,...) VALUES ('".$l_id."',...)" ;
my_select(query2);
1
wolfsgang 2 Jän. 2016 im 14:52

Wenn Sie in beiden Tabellen die Auto Increment-ID verwenden, müssen Sie eine Spalte in der Tabelle score als Referenz für studentid hinzufügen. Zum Beispiel:

Insert into student (name) values ('test');

Als Verwendung:

mysql_insert_id();

Zuletzt Daten in die Punktetabelle einfügen:

Insert into score (yourcolumns, studentid) values (yourcolumnvalue, last_inserted_id);

Randnotiz: anstelle von mysql_* Funktionen verwenden mysqli_* oder PDO, da mysql_* veraltet und in PHP 7 nicht verfügbar ist.

0
devpro 2 Jän. 2016 im 14:24