PHP / MySQL foreign key problem

Tags:    php

Hej folkens. Jeg er ved at lave et forum, men når jeg skal oprette et nyt emne får jeg denne fejl:
Fold kodeboks ind/udKode 


Jeg har 3 tables. users, topics og posts. De er alle af typen innoDB. Og jeg har lavet foreign key således:
Fold kodeboks ind/udKode 


Og php sql'en ser således ud:
Fold kodeboks ind/udKode 


Jeg håber at i kan hjælpe. På forhånd tak!

PS. Jeg er ikke så stærk i SQL, så i må meget gerne forklare det pædagogisk :)



Udskriv din SQL til browseren (echo $sql) og se om SQLen er rigtig før du afvikler den. Check også at det id du bruger til topic_by findes i users tabellen.



Uden lige at have tjekket op på det så mit bud vil være typehåndtering.

I din tabel `users` er user_id højest sansynligt af typen int/number (går jeg ud fra).
og når du sætter ind i din tabel topics (din INSERT statement) skriver 'user_id' du skal istedet fjerne "-tegnene så det er et int istedet for.

så din kode kommer til at se sådan ud:
Fold kodeboks ind/udPHP kode 


Du må gerne lige skrive hvis dette er rigtigt!



Jeg har kombineret jeres råd (mange tak i øvrigt!).

Jeg har fjernet ' ' fra alle strengene, og derefter echo'et $sql'en og får følgende vist:
Fold kodeboks ind/udKode 


Så vidt jeg kan se bliver der ikke udskrevet noget i topic_subject og topic_by. Ved i hvad jeg gør galt?

Og burde NOW() ikke vise tid og dato? Eller sker det først i databasen?



NOW() vises først når det gemmes i databasen.

Prøv at kør noget debugging på det..


Fold kodeboks ind/udKode 




Eh

Det er da counterproduktivt at fejlsøge, og så supresse fejlmeldinger?

Fjern dit @ foran mysqli_query før du foretager dig noget som helst andet. Snabel-aet gør jo at hvis der er fejl i dit query, så får du det ikke at vide :)



Tak Per, jeg vidste slet ikke at det var det @'et gjorde haha.

Jeg har fået den til at vise alle variablerne nu, men nu får jeg afvide at den ikke kan gemme mit query fordi der er et kolon ( : ) i strengen. Er der nogen der kan sige mig hvordan jeg escaper det kolon?



Indlæg senest redigeret d. 22.01.2011 13:00 af Bruger #15070
Problemerne er løst!

Jeg fik den til at vise topic_subject ved at lave $_POST['topic_subject'] til en varibel kaldet $subject og indsætte den i sql'en i stedet for. Grunden til at $_SESSION['user_id'] ikke virkede var at jeg havde glemt at tilføje session_start(ret dumt). Og det med kolon'et klarede jeg ved at skifte "'erne ud med ':
Fold kodeboks ind/udKode 


Tak for hjælpen alle sammen! Jeg sætter virkelig pris på dette forum!



t