Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[mySQL] 'Foreign Key' Fout

Pagina: 1
Acties:
  • 48 views sinds 30-01-2008

  • BlueCola
  • Registratie: November 2006
  • Laatst online: 26-09 02:11
Oi!

Mijn code:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
include "config.php";
$bi = $_GET['bi'];
if ($_POST['knop'] && $_POST['Gebruiker'] && $_POST['Berichtje']) {
$sql = "INSERT INTO BVTR (Bericht_ID, Gebruiker, Dag, Reactie, IP) VALUES ('".$bi."', '".$_POST['Gebruiker']."', NOW(), '".$_POST['Bericht']."', ' ".$_SERVER['REMOTE_ADDR']." ')";
$query = mysql_query($sql) or die("Er is een fout op getreden. Neem contact op met Marijn en meld de volgende foutcode : " . mysql_error());
echo "Reactie is geplaats!";
}else{
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
Gebruiker ( Je hoeft je niet aan te melden, je kunt gewoon een naam invullen) : <input type="text" name="Gebruiker" value="Timon" /><br />
Berichtje voor timon : <textarea name="Berichtje" cols="30" rows="10"></textarea><br />
<input type="submit" name="knop" />
</form>
<?php
}
?>


Als ik alles in het formulier invul krijg ik de volgende fout:

foutcode : Cannot add or update a child row: a foreign key constraint fails

Mijn code voor de foreign key constraint is :

code:
1
2
ALTER TABLE `BVTR`
  ADD CONSTRAINT `b_Bericht_ID` FOREIGN KEY (`Bericht_ID`) REFERENCES `BVT` (`Bericht_ID`);


En mijn tabbelen van mijn database :

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
-- phpMyAdmin SQL Dump
-- version 2.10.0.2
-- http://www.phpmyadmin.net
-- 
-- Host: localhost
-- Generatie Tijd: 24 Nov 2007 om 05:03
-- Server versie: 4.1.22
-- PHP Versie: 4.4.2

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

-- 
-- Database: `marijntj_timon`
-- 

-- --------------------------------------------------------

-- 
-- Tabel structuur voor tabel `BVT`
-- 

CREATE TABLE `BVT` (
  `Bericht_ID` bigint(20) NOT NULL auto_increment,
  `Gebruiker` varchar(50) NOT NULL default '',
  `Dag` datetime NOT NULL default '0000-00-00 00:00:00',
  `Bericht` longtext NOT NULL,
  `IP` varchar(100) NOT NULL default '',
  PRIMARY KEY  (`Bericht_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=28 ;

-- 
-- Gegevens worden uitgevoerd voor tabel `BVT`
-- 

INSERT INTO `BVT` VALUES (1, 'Marijn', '2007-11-22 15:41:00', 'Timon, Ik hoop dat je snel weer beter bent en van de IC af komt.\r\nGroeten, Marijn', '');
-- --------------------------------------------------------

-- 
-- Tabel structuur voor tabel `BVTR`
-- 

CREATE TABLE `BVTR` (
  `Reactie_ID` bigint(20) NOT NULL auto_increment,
  `Bericht_ID` bigint(20) NOT NULL default '0',
  `Gebruiker` varchar(50) NOT NULL default '',
  `Dag` datetime NOT NULL default '0000-00-00 00:00:00',
  `Reactie` longtext NOT NULL,
  `IP` varchar(50) NOT NULL default '',
  PRIMARY KEY  (`Reactie_ID`),
  KEY `Bericht_ID` (`Bericht_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

-- 
-- Gegevens worden uitgevoerd voor tabel `BVTR`
-- 


-- 
-- Beperkingen voor gedumpte tabellen
-- 

-- 
-- Beperkingen voor tabel `BVTR`
-- 
ALTER TABLE `BVTR`
  ADD CONSTRAINT `b_Bericht_ID` FOREIGN KEY (`Bericht_ID`) REFERENCES `BVT` (`Bericht_ID`);


Alles bestaat dus gewoon. Ik zie de fout niet! Jullie wel?

B.V.D! Marijn

And that's how one and one makes three.


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Controleer de insert SQL.

Programmer - an organism that turns coffee into software.


  • BlueCola
  • Registratie: November 2006
  • Laatst online: 26-09 02:11
Die lijkt me goed toch? Of niet?

And that's how one and one makes three.


  • Cloud
  • Registratie: November 2001
  • Laatst online: 03-11 10:25

Cloud

FP ProMod

Ex-moderatie mobster

De insert SQL is de enige plek waar het fout kan gaan eigenlijk. De rest is in orde. Als een FK faalt dan betekent dat dat hij 'de link' niet kan leggen. En dat is dus tijdens de insert.

Echo dus eens de exacte SQL query die je uit probeert te voeren. Wij kunnen niet ruiken wat voor waarden die POST variabelen hebben hé ;)

Never attribute to malice that which can be adequately explained by stupidity. - Robert J. Hanlon
60% of the time, it works all the time. - Brian Fantana


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Controleer hem voordat je hem uitvoert. Kennelijk gaat daar iets fout.

Programmer - an organism that turns coffee into software.


  • BlueCola
  • Registratie: November 2006
  • Laatst online: 26-09 02:11
Ik denk dat ik al weet wat er mis gaat.De $bi = $_GET['bi'] vervangt hij steeds als je de pagina laadt. En als je op de submitknop drukt staat er in de url niet meer het bi(berichtid). en dan is de waarde van de vabriele $bi leeg. En dan voert ie dus als Bericht_ID niks in. En dat moet wel. Weet iemand hoe ik dit oplos???

And that's how one and one makes three.


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 15:10

Creepy

Tactical Espionage Splatterer

Ja


En wat heb je zelf al geprobeerd om het op te lossen? Nog geen idee? Met een beetje PHP kennis zou je dat toch echt zelf moeten kunnen oplossen. Dus wat heb je zelf al geprobeerd en wat lukte daar niet mee? Het is hier geen helpdesk waar we de boel compleet voor je gaan voorkauwen ;)

Lees aub Programming Beleid - De Quickstart eens door zodat je weet wat we van een topicstart of een goede vraag verwachten. Je post hierboven en je topicstart missen nogal wat gevraagde informatie.

[ Voor 71% gewijzigd door Creepy op 24-11-2007 12:59 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 15:10

Creepy

Tactical Espionage Splatterer

Ah, dit is hetzelfde probleem als in Blue-cola in "[mySQL] Foreign Key".

Deze gaat dicht. Ga aub verder in het topic waar je al in bezig was en let daar aub ook op de net gelinkte quickstart.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.