Ik heb voor een forum nu links de topis en rechts de reacties. Als je dan op een topic links klikt verschijnen de reacties daarvan rechts.
Nu wil ik de topics sorteren op laatste reacties.. ik heb echter geen idee hoe dit moet, of wat ik hiervoor moet gebruiken.
De reacties staan in: forum_reactiesgame, deze tabel heeft een id, lid_ID, reactie, reactie_op en reactie_naam..
De topics staan in: forum_onderwerpengame, deze wil ik dus selecteren en sorteren op de laatste posts....
Nee want de reacties en de topics staan in verschillende tabelen..
Ik wil dus dat de topic met de laatste post bovenaan staat, misschien begrijpen jullie het verkeerd / leg ik het verkeerd uit
Je kan je tabellen met elkaar linken via JOINS.
Voor een join heb je een waarde nodig die in beide tabellen gelijk zijn. Dit is meestal in de ene tabel een primary key en in de andere tabel een foreign key. Deze kan je dan op de volgende manier koppelen.
<?php
$sQuery = "SELECT
tabelnaam1.veldnaam1,
tabelnaam1.veldnaam2,
tabelnaam2.veldnaam1
FROM
tabelnaam AS tabelnaam1
LEFT | RIGHT | INNER JOIN
tabelnaam2 AS tabelnaam2
ON
tabelnaam1.veldnaam1 = tabelnaam2.veldnaam1";
?>
<?php
$sQuery="SELECT
tabelnaam1.veldnaam1,
tabelnaam1.veldnaam2,
tabelnaam2.veldnaam1
FROM
tabelnaam AS tabelnaam1
LEFT | RIGHT | INNER JOIN
tabelnaam2 AS tabelnaam2
ON
tabelnaam1.veldnaam1 = tabelnaam2.veldnaam1";
?>
Je kan kiezen tussen LEFT RIGHT en INNER JOIN. Dit verschil wordt in een tutorial hier verder uitgelegd. Verder dien je er rekening mee te houden dat je de tabelnaam voor het veld zet en dat in de ON clausule de beide velden staan die gelijk zijn.
Vervolgens ga je die query uitvoeren. Geen resultaat? or die(mysql_error()) achter je query zetten. Nog geen resultaat? Query uitvoeren in phpmyadmin. En wat doen die akelige * achter je tabelnamen?
Dan heb je je database niet goed opgebouwd. Het mag namelijk niet voorkomen dat een ID een NULL waarde bevat.
Verder als de query het wel in phpMyAdmin doet dan is je query goed en is de stap daarna waarschijnlijk een foute. Wat doe je daarna? Post je code eens. (groter dan 70 regels op plaatscode.be)
Ik heb de code een beetje aangepast aan de hand van de tutorials over JOINs hier en het is gelukt! Harstikke bedankt voor je hulp marten
Edit: Hij doet het prima zolang er geen of maar 1 reactie is maar zodra ik 2 reacties heeft geeft hij de topic 2x weer, 3 reacties 3x and so on.. Bijvoorbeeld
Citaat:
Daily Chat
test 2
test 2
Vragen? 0
test343? 0
wewae 0
zoals je ziet komt test 2x terug.. Wat ik probeerde is
$query = "SELECT DISTINCT
forum_onderwerpengame.titel,
forum_onderwerpengame.id,
forum_reactiesgame.om
FROM
forum_onderwerpengame AS forum_onderwerpengame
LEFT JOIN
forum_reactiesgame AS forum_reactiesgame
ON
forum_onderwerpengame.id = forum_reactiesgame.op ORDER BY 'om' DESC";
$query="SELECT DISTINCT
forum_onderwerpengame.titel,
forum_onderwerpengame.id,
forum_reactiesgame.om
FROM
forum_onderwerpengame AS forum_onderwerpengame
LEFT JOIN
forum_reactiesgame AS forum_reactiesgame
ON
forum_onderwerpengame.id = forum_reactiesgame.op ORDER BY 'om' DESC";
Je moet zorgen dat je in je query nog een where clausule zet. Dus wanneer je op topic 1 klikt dat je dan in de url een get value meestuurd waar 1 in staat en deze zet je dan in je where clausule.
En aub geen priveberichten sturen of ik aub in je topic wil kijken.