Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]10519[/thread]

[PHP] NULL = 0 != null ??? (Seite 3)

Leser: 1


<< |< 1 2 3 4 >| >> 35 Einträge, 4 Seiten
nepos
 2007-10-09 11:34
#100535 #100535
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Da stimmt die Syntax nicht:
[sql]ALTER TABLE `meeting_teilnehmer`
ADD CONSTRAINT `teilnehmer_id`
FOREIGN KEY (`teilnehmer_id`)
REFERENCES `teilnehmer`(`id`)
ON DELETE CASCADE;[/sql]
Für den Foreign Key der Teilnehmer und
[sql]ALTER TABLE `meeting_teilnehmer`
ADD CONSTRAINT `meeting_id`
FOREIGN KEY (`meeting_id`)
REFERENCES `meeting`(`id`)
ON DELETE CASCADE;[/sql]
für den Foreign Key der Meetings.

Sollte das IMHO heißen. Das ON DELETE CASCADE solltest du auch mit reinnehmen, denn sonst bleiben in deiner Tabelle Leichen, wenn du ein Meeting oder einen Teilnehmer löscht. Mit dem ON DELETE CASCADE räumt die Datenbank die entsprechenden Einträge automatisch mit weg.
FlorianL
 2007-10-09 12:23
#100538 #100538
User since
2007-05-18
142 Artikel
BenutzerIn
[default_avatar]
hi, danke für deine hilfe :)

also der erster alter table funzt, beim zweiten bekomme ich den selben fehler wie eben, innodb status zeit folgenden fehler:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
------------------------
LATEST FOREIGN KEY ERROR
------------------------
071009 10:21:54 Error in foreign key constraint of table teammeeting/#sql-a507e_30:

foreign key (`meeting_id`)
references `meeting`(`id`)
on delete cascade:
Cannot resolve table name close to:
(`id`)
on delete cascade
nepos
 2007-10-09 12:29
#100539 #100539
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Da psst wohl der Tabellenname in der REFERENCES-Zeile nicht. Einfach anpassen. Da ab ich mich wohl vertan.
FlorianL
 2007-10-09 12:48
#100543 #100543
User since
2007-05-18
142 Artikel
BenutzerIn
[default_avatar]
jau, fehlte ein 's', hab ich dannach auch gecheckt :]


Code: (dl )
1
2
3
Cannot add or update a child row: a foreign key constraint fails (`teammeeting/meeting_teilnehmer`, CONSTRAINT `teilnehmer_id` FOREIGN KEY (`teilnehmer_id`) REFERENCES `teilnehmer` (`id`) ON DELETE C

INSERT INTO meeting_teilnehmer (meeting_id, teilnehmer_id) VALUES (1, 0)



muss ich jetz die insert statements auch alle noch ändern?!?
nepos
 2007-10-09 13:05
#100545 #100545
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Äh, genau das, was du da grade versuchts wolltest du doch verhindern. Den Teilnehmer mit der ID 0 gibts ja nicht und deshalb darf der nicht mer in die Tabelle meeting_teilnehmer rein. Du kannst nun nur noch Einträge machen, wo sowohl ein Meeting als auch ein Teilnehmer mit der passenden ID in den jeweiligen Tabellen existiert.

Dein INSERT war nun quasi der Test, ob das mit den Foreign Keys auch funktioniert ;)
FlorianL
 2007-10-09 13:12
#100546 #100546
User since
2007-05-18
142 Artikel
BenutzerIn
[default_avatar]
Aaaber: Ich hole mir ja die teilnehmer vorher aus der tabelle, stimmt denn da auch was nicht?!

Code: (dl )
1
2
3
4
5
6
if (isset ($_POST['teilnehmer'])) {
foreach ($_POST['teilnehmer'] as $teilnehmerId => $teilnehmer) {
$addteilnehmer = ("INSERT INTO meeting_teilnehmer (meeting_id, teilnehmer_id) VALUES ($meetingId, $teilnehmerId)");
mysql_query($addteilnehmer) or die (mysql_error() . "<br />" . $addteilnehmer);
}
}


Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
mysql> select * from teilnehmer;        
+----+---------+-----------+
| id | vorname | nachname |
+----+---------+-----------+
| 1 | Florian | Lüttgens |
| 2 | Jahan | Ketabchy |
| 3 | Thomas | Koch |
| 4 | Ingo | Praum |
| 5 | Michael | Schroeder |
| 6 | Uwe | Bergefeld |
| 7 | Horst | Billion |
+----+---------+-----------+
7 rows in set (0.00 sec)


mit diesem code hol ich mir die teilnehmer auf der eingabemaske aus der db:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$query = "SELECT id, vorname, nachname FROM teilnehmer";
$res = mysql_query($query);
if (!$res) {
echo ("Panik");
} else {
$teilnehmerArray = array();
while($row = mysql_fetch_assoc($res)) {
$teilnehmerArray[] = $row;
}
}

echo ("<br><br><strong>Teilnehmer:</strong>");
foreach($teilnehmerArray as $teilnehmer) {
echo("<input type=\"checkbox\" name=\"teilnehmer[]\" value=\"$teilnehmer[id]\">$teilnehmer[nachname]" . "\t");
}
GwenDragon
 2007-10-09 13:48
#100549 #100549
User since
2005-01-17
14563 Artikel
Admin1
[Homepage]
user image
Hat ja wohl nichts mit Perl zu tun!

Falscher Thread.
Ist PHP.

----
Modedit Gwendragon:
Threadtitel umbenannt; Thread verschoben.
----
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

FlorianL
 2007-10-09 13:57
#100551 #100551
User since
2007-05-18
142 Artikel
BenutzerIn
[default_avatar]
Weiss ich doch Gwen, aber angefangen hats mit nem db-problem ;)
nepos
 2007-10-09 13:59
#100552 #100552
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Tja, da wird dann wohl irgendwas in deinem PHP-Code nicht passen und als ID ne 0 liefern. Da musst du selber mal debuggen...
Dein SELECT für die Teilnehmer stimmt jedenfalls. Entweder du baust deine Checkbox schon falsch zusammen (das siehst du aber leicht am HTML-Quellcode) oder du machst beim Auslesen der Formulardaten einen Fehler...

Daneben hast du mal wieder einen der übelsten Fehler in deinem Code: du checkst absolut nicht, ob das, was du vom Browser, sprich Benutzer geschickt bekommst, das ist, was du haben willst und pumpst das ganze 1:1 in SQL-Anweisungen. SQL-Injection lässt grüssen!
An deiner Stelle würde ich schon mal beim Verarbeiten testen, ob du da als IDs überhaupt Zahlen bekommst.
GwenDragon
 2007-10-09 15:14
#100562 #100562
User since
2005-01-17
14563 Artikel
Admin1
[Homepage]
user image
FlorianL+2007-10-09 11:57:52--
Weiss ich doch Gwen, aber angefangen hats mit nem db-problem ;)

ja sowas. Und die Datenbank(abfrage)sprache heißt SQL und auch nicht Perl.

Hattest du aber trotzdem unter Perl gepostet.
Anwendungen/Programme/Skripte in Perl » Datenbanken und Verzeichnisdienste!
Da steht Anwendungen/Programme/Skripte in Perl .
Das Datenbanken und Verzeichnisdienste bezieht sich aufAnwendungen/Programme/Skripte in Perl
;)
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

<< |< 1 2 3 4 >| >> 35 Einträge, 4 Seiten



View all threads created 2007-10-05 14:17.