Bei Neuanlegung eines DS soll ID in eine weitere Tabelle übertragen werden

Spellchiller

Mitglied
Hallo zusammen,

ich finde keine funktionierende Lösung für folgenden Sachverhalt.

Wenn ich einen Datensatz in einer Tabelle anlege soll in einer weiteres Tabelle die ID übernommen werden.

Ich hatte das so versucht:

PHP:
$sql="INSERT INTO tbl_1 (kd_name, kd_vorname)
VALUES
('$_POST[kd_name]','$_POST[kd_vorname]')";

sql_id="INSERT INTO tbl_2 (kd_preis_nr) SELECT kd_nr FROM tbl_1 where kd_nr = '$_POST[kd_name]'"; 
//hier bekomme ich nur die Fehlermeldung: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"INSERT INTO tbl_2 (kd_preis_nr) SELECT kd_nr FROM tbl_1 WHERE kd_nr = '$_POST[kd_ort]'

Die kd_nr ist ein AUTO INCREMENT.

Entweder fehlt irgendwo ein Zeichen oder es ist irgendwo eins zuviel. Richtig?
 
Das hier ist sicher nix
SQL:
SELECT kd_nr FROM tbl_1 where kd_nr = '$_POST[kd_name]'
du suchst $_POST[kd_name] im Feld kd_nr. Ausser dass es inhaltlich falsch ist, ist es auch technisch Fals. Der Name ist ein String, die kd_nr eine Zahl...
Versuch es mit dem WHERE auf den kd_name zu vergleichen
SQL:
INSERT INTO tbl_2 (kd_preis_nr) SELECT kd_nr FROM tbl_1 where kd_name = '$_POST[kd_name]'
 
Zuletzt bearbeitet von einem Moderator:
Stimmt. Würde kaum Sinn machen.

Habs versucht zu übernehmen und in SQL mal zu starten:

SQL:
"INSERT INTO tbl_2 (kd_preis_nr) SELECT kd_nr FROM tbl_1 WHERE kd_name = '$_POST[kd_name]'"

Klar, wenn ich es via SQL starte findet er $_POST[kd_name]. Daher hatte ich es auf
SQL:
"INSERT INTO tbl_2 (kd_preis_nr) SELECT kd_name FROM tbl_1 WHERE kd_name = 'Mustermann'"

Selbige Fehlermeldung.

Und wenn ich es in php mache
PHP:
sql_id="INSERT INTO tbl_2 (kd_preis_nr) SELECT kd_nr FROM tbl_1 WHERE kd_name = '$_POST[kd_name]'";
Bekomm ich:
Parse error: syntax error, unexpected '=' in /www/htdocs/w00e3f4e/database/kunde_neu.php on line 40
 
Zuletzt bearbeitet von einem Moderator:
Was passiert wenn du diesen Code ausführst:

PHP:
<?php

$sql = "INSERT INTO tbl_1 (kd_name, kd_vorname) VALUES ('" .mysql_real_escape_string($_POST['kd_name']) ."','" .mysql_real_escape_string($_POST['kd_vorname']) ."')";
mysql_query($sql);

$id = mysql_insert_id();

$sql_id = "INSERT INTO tbl_2 (kd_preis_nr) WHERE kd_nr = " .$id;
mysql_query($sql_id);

?>
 
Hallo tombe,

dann bekomm ich die Meldung: Parse error: syntax error, unexpected '=' in /www/htdocs/w00e3f4e/database/kunde_neu.php on line 42

Line 42 ist diese hier:
PHP:
$sql_id = "INSERT INTO tbl_2 (kd_preis_nr) WHERE kd_nr = " .$id;
 
Dann hast du vor Zeile 42 einen Fehler.
In deinem Code weiter oben fehlt(e) z.B. bei der Variablen sql_id das $-Zeichen.
 
Na klar. Das sind Fehler, die mir noch nicht direkt ins Auge springen.

Der Kunde wird nun angelegt jedoch wird die kd_nr nach wie vor nicht übertragen...
 
PHP:
$sql_id = "INSERT INTO tbl_2 (kd_preis_nr) WHERE kd_nr = " .$id;

Kein wunder wird nichts inserted.... Was sollte er denn mit dem Where hier tun?
Wohl eher so:
PHP:
$sql_id = "INSERT INTO tbl_2 (kd_preis_nr) VALUES (" .$id.")";
 
Hallo,

leider auch ohne Erfolg.

PHP:
$id = mysql_insert_id(); 

$sql_id="INSERT INTO tbl_preise (kd_preis_nr) SELECT kd_nr FROM tbl_kunden VALUES kd_nr = " .$id; 
mysql_query($sql_id);
:(
 

Neue Beiträge

Zurück