SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Das Zend Framework

Das Zend Framework zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 19.04.2013, 17:19:52
lebuek lebuek ist offline
Anfänger
 
Registriert seit: Feb 2013
Alter: 69
Beiträge: 12
Einfügen von Daten in 2 Tabellen

Hallo zusammen,

ich wäre super glücklich, wenn jemand mir einen Tip geben könnte ...
Das Problem ist folgendes: ich habe 2 Tabellen (bestellung + besteller), die über ein Formular ihre Daten erhalten. Das Einfügen klappt auch, allerdings nicht, wenn ich zusätzlich einen foreign key zusätzlich einfüge.

Das wären meine SQL-Statements:

$sqlp = "INSERT INTO besteller
(nachname,vorname,strasse,ort,telefon,email)
VALUES ('$nachname','$vorname','$strasse','$wohnort','$telefon','$mail')";

$sql = "INSERT INTO bestellung (nachname,vorname,strasse,ort,mail,telefon,nachricht,kato,kata,katb,ka tc,katd,datum,
fbest_id)
VALUES ('$nachname','$vorname','$strasse','$wohnort','$mail','$telefon','$nac hricht','$okat','$akat','$bkat','$ckat','$dkat','$dat')

$sqlpl = "INSERT INTO bestell (fbest_id) SELECT id_besteller
FROM besteller WHERE besteller.nachname LIKE '$nachname'";

Vielen Dank!
Mit Zitat antworten
  #2  
Alt 20.04.2013, 13:07:46
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: Einfügen von Daten in 2 Tabellen

Wie wäre es denn mal mit der (kompletten) Struktur der beiden Tabellen?
Ist die Tabelle bestell eine weitere Tabelle oder nur ein Schreibfehler?
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #3  
Alt 20.04.2013, 15:29:25
lebuek lebuek ist offline
Anfänger
 
Registriert seit: Feb 2013
Alter: 69
Beiträge: 12
AW: Einfügen von Daten in 2 Tabellen

Hallo,
danke für den Hinweis - ja das war ein Schreibfehler - die Tabellen
sind wie folgt definiert:

Tabelle bestellung:
id_bestellung int(11)
nachname varchar(80)
vorname varchar(80)
strasse varchar(80)
ort varchar(100)
mail varchar(60)
telefon varchar(40)
nachricht varchar(400)
kato int(4)
kata int(4)
katb int(4)
katc int(4)
katd int(4)
datum date
fbest_id int(4) (foreign key -> id_besteller)


Tabelle besteller:

id_besteller int(4)
nachname varchar(250)
vorname text (150)
ort varchar(250)
strasse varchar(250)
telefon int(50)
email varchar(50)
Mit Zitat antworten
  #4  
Alt 22.04.2013, 18:58:57
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: Einfügen von Daten in 2 Tabellen

Zitat:
Zitat von lebuek Beitrag anzeigen
die Tabellen sind wie folgt definiert:
Und wie wärs mal mit dem kompletten CREATE TABLE? Dann könnte man ja erkennen, ob Du die für foreign key erforderliche InnoDB Engine verwendest.
Mit Zitat antworten
  #5  
Alt 22.04.2013, 20:39:11
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 55
Beiträge: 1.044
AW: Einfügen von Daten in 2 Tabellen

Ungeachtet von deinem Problem.
Was passiert eigentlich, wenn mehrere Besteller den gleichen Nachnamen haben?
PHP-Code:
$sqlpl "INSERT INTO bestellung (fbest_id) SELECT id_besteller
FROM besteller WHERE besteller.nachname LIKE '$nachname'"

Bin mir da ziehmlich sicher, dass dir diese Query die falsche ID holt. Ist eher Glück, wenn es die richtige ID ist.

Schau dir mal folgende Links an:
mysql_insert_id (deprecated ab PHP Version 5.5.0)
mysqli_insert_id
oder
PDO::lastInsertId()
Mit Zitat antworten
  #6  
Alt 22.04.2013, 21:32:57
lebuek lebuek ist offline
Anfänger
 
Registriert seit: Feb 2013
Alter: 69
Beiträge: 12
AW: Einfügen von Daten in 2 Tabellen

Das ist natürlich richtig - und ich werde das mit weiteren Abfragen überprüfen.
Danke!
Zunächst muss ich aber das Problem mit dem foreign key lösen.
Mit Zitat antworten
  #7  
Alt 22.04.2013, 23:08:21
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: Einfügen von Daten in 2 Tabellen

Zitat:
Zitat von lebuek Beitrag anzeigen
Zunächst muss ich aber das Problem mit dem foreign key lösen.
Lies endlich das Handbuch!
Zitat:
Zitat von http://dev.mysql.com/doc/refman/5.1/de/innodb-foreign-key-constraints.html
14.2.6.4. Fremdschlüssel-Beschränkungen

InnoDB unterstützt auch Fremdschlüssel-Constraints, die in InnoDB mit folgender Syntax definiert werden:

[CONSTRAINT symbol] FOREIGN KEY [id] (index_col_name, ...)
REFERENCES tbl_name (index_col_name, ...)
[ON DELETE {RESTRICT | CASCADE | SET NULL | NO ACTION}]
[ON UPDATE {RESTRICT | CASCADE | SET NULL | NO ACTION}]

Für Fremdschlüsseldefinitionen gelten folgende Bedingungen:

Beide Tabellen müssen InnoDB-Tabellen sein und dürfen keine TEMPORARY-Tabellen sein....
Mit MyISAM gehts nämlich nicht!
Mit Zitat antworten
  #8  
Alt 23.04.2013, 07:57:11
lebuek lebuek ist offline
Anfänger
 
Registriert seit: Feb 2013
Alter: 69
Beiträge: 12
AW: Einfügen von Daten in 2 Tabellen

Hallo,
den foreign key habe ich nach Syntax angelegt (ich glaube, das hätte sonst nicht
funktioniert), die Tabellen in php Admin - es sind in keinem Fall MyISAM Tabellen !

Aber ich werde sie nochmal neu angelegen über (drop/create) und mit expliziter Angabe
der engine.

Geändert von lebuek (23.04.2013 um 08:07:49 Uhr)
Mit Zitat antworten
  #9  
Alt 23.04.2013, 14:26:00
Benutzerbild von newbienchen
newbienchen newbienchen ist offline
Anfänger
 
Registriert seit: Apr 2013
Ort: berlin
Alter: 39
Beiträge: 8
AW: Einfügen von Daten in 2 Tabellen

Zitat:
Zitat von meikel Beitrag anzeigen
Und wie wärs mal mit dem kompletten CREATE TABLE? Dann könnte man ja erkennen, ob Du die für foreign key erforderliche InnoDB Engine verwendest.
Selbiges hätte ich jetzt auch vorgeschlagen...
__________________
Nulla vita sine musica!
Mit Zitat antworten
  #10  
Alt 23.04.2013, 15:50:55
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: Einfügen von Daten in 2 Tabellen

Zitat:
Zitat von newbienchen Beitrag anzeigen
Selbiges hätte ich jetzt auch vorgeschlagen...
Er ziert sich noch etwas, CREATE TABLE, paar INSERTS als Futter und ne exakte Fehlermeldung zu liefern. Das
Zitat:
Das Einfügen klappt auch, allerdings nicht, wenn ich zusätzlich einen foreign key zusätzlich einfüge.
Ist definitiv keine Fehlermeldung.
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Daten aus 5 Tabellen kombinieren -> neue Tabelle schreiben stefando MySQLi/PDO/(MySQL) 2 01.03.2012 21:26:58
Daten aus 2 Tabellen sortieren Jaecko MySQLi/PDO/(MySQL) 1 10.08.2009 16:10:47
Daten aus csv-Datei in zwei Tabellen speichern sputnik72 PHP Grundlagen 6 13.08.2007 16:12:15
daten aus 2 tabellen strubel123 PHP Grundlagen 3 25.03.2004 20:55:56
Daten aus 2 Tabellen verknüpfen (Newbie-Frage) LouCypher PHP für Fortgeschrittene und Experten 3 12.01.2003 18:55:28


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:55:41 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt