Hallo iedereen
(sorry voor de mensen die een leeg topic zien op het begin. Nadeel van een touchpad)

Ik ben bezig met een forum. Daarvoor heb ik twee tabellen aan gemaakt. Een voor de reacties en een voor de Topics.

Voor de topics

CREATE TABLE `forum_topics` (
  `id` int(11) NOT NULL auto_increment,
  `schrijver` varchar(255) collate latin1_general_ci NOT NULL,
  `onderwerp` varchar(255) collate latin1_general_ci NOT NULL,
  `categorie` varchar(255) collate latin1_general_ci NOT NULL,
  `bericht` text collate latin1_general_ci NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=200 ;


voor de reacties

CREATE TABLE `forum_reacties` (
  `id` int(11) NOT NULL auto_increment,
  `topic_key` int(11) NOT NULL default '0',
  `schrijver` varchar(255) collate latin1_general_ci NOT NULL,
  `onderwerp` varchar(255) collate latin1_general_ci NOT NULL,
  `categorie` varchar(255) collate latin1_general_ci NOT NULL,
  `bericht` text collate latin1_general_ci NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=3 ;


Nou zie ik de reacties uit het tabel forum_reacties maar niet het start bericht uit de tabel forum_topics. Wel heb ik uit deze een onderwerp kunnen halen.

De query

$query3	 = mysql_query
	("
	SELECT forum_topics.id, forum_topics.schrijver, forum_topics.onderwerp, forum_topics.categorie, forum_topics.bericht, 
	forum_reacties.id, forum_reacties.topic_key, forum_reacties.schrijver, forum_reacties.categorie, forum_reacties.bericht
	FROM forum_topics
	LEFT JOIN forum_reacties
	ON forum_topics.id = forum_reacties.topic_key 
	WHERE forum_topics.id = '". $topicid ."' 
	AND forum_reacties.topic_key = '". $topicid ."' 
	") or die(mysql_error());


Ik hoop dat ik duidelijk genoeg ben.
Bij voorbaat dank,
vlerknozem
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 'OUTER JOIN forum_reacties ON forum_topics.id = forum_reacties.topic_key WH' at line 4
echo je sql eens en zet deze eens mooi geformateerd hier neer tussen code tags

<?php
$query3	 = mysql_query
("
   SELECT 
       forum_topics.id, forum_topics.schrijver, forum_topics.onderwerp,   
       forum_topics.categorie, forum_topics.bericht AS topicbericht,
       forum_reacties.id, forum_reacties.topic_key, forum_reacties.schrijver,  
       forum_reacties.categorie, forum_reacties.bericht AS forumbericht
	
   FROM forum_topics 
   OUTER JOIN forum_reacties 
   ON forum_topics.id = forum_reacties.topic_key 
	
   WHERE forum_topics.id = '". $topicid ."' 
   AND forum_reacties.topic_key = '". $topicid ."' 
   ORDER BY forum_reacties.id ASC
") or die(mysql_error());
?>


Als dat niet mooi is :)
Doe eens:

<?php
$query3="
    SELECT 
       forum_topics.id, 
       forum_topics.schrijver, 
       forum_topics.onderwerp,   
       forum_topics.categorie, 
       forum_topics.bericht AS topicbericht,
       forum_reacties.id, 
       forum_reacties.topic_key, 
       forum_reacties.schrijver,  
       forum_reacties.categorie, 
       forum_reacties.bericht AS forumbericht
FROM 
       forum_topics 
LEFT JOIN 
        forum_reacties 
ON 
        forum_topics.id = forum_reacties.topic_key 
WHERE 
        forum_topics.id = '". $topicid ."' 
AND 
        forum_reacties.topic_key = '". $topicid ."' 
ORDER BY 
        forum_reacties.id ASC
"
echo $query3;
$res=mysql_query($sql) or die(mysql_error());
?>
Dan krijg ik dit:


SELECT forum_topics.id, forum_topics.schrijver, forum_topics.onderwerp, 
forum_topics.categorie, forum_topics.bericht AS topicbericht, forum_reacties.id, 
forum_reacties.topic_key, forum_reacties.schrijver, forum_reacties.categorie, 
forum_reacties.bericht AS forumbericht FROM forum_topics LEFT JOIN 
forum_reacties ON forum_topics.id = forum_reacties.topic_key WHERE 
forum_topics.id = '205' AND forum_reacties.topic_key = '205' ORDER BY 
forum_reacties.id ASC Query was empty
Na lichte aanpassing zie ik de boel wel, maar ik kan het niet meer testen want een topic toevoegen gaat nu niet meer. Dus ik moet dat eerst even gaan debuggen.

[edit]
Oke. Maar het werkt nog steeds niet. Ik vind het maar wazig...
[/edit]
Wat doet die Query was empty daar???
Vroeg ik me ook al af. Ik zou eigenlijk niet weten hoe ik dit moet aanpakken.
Bestaat forum_topic.id 205 wel?
En wat gebeurt als je
SELECT forum_topics.id, forum_topics.schrijver, forum_topics.onderwerp,
forum_topics.categorie, forum_topics.bericht AS topicbericht, forum_reacties.id,
forum_reacties.topic_key, forum_reacties.schrijver, forum_reacties.categorie,
forum_reacties.bericht AS forumbericht FROM forum_topics LEFT JOIN
forum_reacties ON forum_topics.id = forum_reacties.topic_key WHERE
forum_topics.id = '205' AND forum_reacties.topic_key = '205' ORDER BY
forum_reacties.id ASC
invoert in phpmyadmin?
Dan zie ik de volgende velden.

id
schrijver
onderwerp
categorie
topicbericht
id
topic_key
schrijver
categorie
forumbericht

Elk hiervan is gevuld met de juiste waarde. Misschien is het geen SQL probleem maar eerder een PHP probleem

Reageren