Hey,

Ik ben bezig met mijn forum en daarbij moet het volgende gedaan worden op de pagina Topiclist.php

Alle topics moet uit de database gehaald worden bij desbetreffende sub_id, dit is niet zo moeilijk en lukt ook gewoon:

<?php
$sql = mysql_query("
					SELECT
						*
					FROM
						topic
					WHERE
						sub_id = '".mysql_real_escape_string($_GET['sub_id'])."'
				   ");
?>


Alleen nu het probleem:
Hij moet gaan ordenen op de last post...
hoe de h*ll krijg ik het voor elkaar om eerst alle post nog even op te halen en dan daarmee te ordenen?

En dan probleem 2:
Hij moet dan ook nog eens kijken naar de status van het topic, alleen als de status nr 2 heeft moet dat topic bovenin blijven deze is namelijk een sticky.

Iemand een idee of een duwtje in de goede richting?

Gr,
Zoiets?

<?PHP

# Query
$Query =
"
SELECT
veld1,
veld2,
veld3
FROM
topic
WHERE
sub_id = '".intval($_GET['sub_id'])."'
ORDER BY
datum
DESC
";

# Result of query
$Result = mysql_query($Query);

# Kijken of de query is gelukt
if(!$Result)
{
# Foutje in query
echo 'An error occured, error: '.mysql_error();
}
else
{
# Kijken of er wel resultaten zijn
if(mysql_num_rows($Result) == 0)
{
# Geen resultaten
echo 'No results found in database.';
}
else
{
# Loop uitvoeren
while($Row = mysql_fetch_assoc($Result))
{
# Kijken naar de status
if($Row['status'] == 2)
{
# Laat hier je stickies zien
}

# Laat hier de rest van de topics zien
}
}
}

?>
ik begrijp dat order by nodig is, sorry vergeten te melden
maar die posts staan in een andere tabel hoe kan ik ordenen op iets dat in een andere tabel staat

ik dacht aan:


<?php

$sql = mysql_query("
					SELECT
						*
					FROM
						topic
					WHERE
						sub_id = '".mysql_real_escape_string($_GET['sub_id'])."'
					ORDEN BY
						(
						SELECT
							datum
						FROM
							posts
						WHERE
							sub_id = '".mysql_real_escape_string($_GET['sub_id'])."'
						AND
							topic_id = topic.id
						ORDER BY
							datum
						DESC
						)
				   ");
?>


of toch niet?
Ik ben niet echt een kei in mysql query's maar ik ga toch een poging wagen.


SELECT
	a.veld1,
    a.veld2,
    b.veld1,
    b.veld2
FROM 
	tabel1 AS a
INNER JOIN 
	tabel2 AS b
ON 
	b.ID = a.ID
WHERE 
	a.sub_id = '".intval($_GET['sub_id'])."'
ORDER BY
	b.datum
DESC
Helaas, hij werkt niet...
Maar misschien licht het aan mijn invulling:


$sql = mysql_query("
					SELECT
						a.*,
						b.*,
					FROM 
						topic AS a
					INNER JOIN 
						posts AS b
					ON 
						b.topic_id = a.id
					WHERE 
						a.sub_id = '".mysql_real_escape_string($_GET['sub_id'])."'
					ORDER BY
						b.datum
					DESC
				   ");
Helaas, hij werkt niet...


Welke fout geeft ie aan? (foutenafhandeling)
Geen fout,
hij gaat gewoon door maar hij geeft alle velden dubbel...

Als je naar:
http://after-party.nl/Forum/
gaat en inlogt met:
phphulp
123poep

en dan gaat naar de topic pagina kun je het zien...

Ah nu krijg ik wel fouten XD zal eff mysql_error doen
Ik zie nog een typo, om ON moeten nog haakjes ( ), dus ON ( b.topic_id = a.id )
Gedaan en nog steeds hetzelfde:
Die:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /customers/after-party.nl/after-party.nl/httpd.www/Forum/Topiclist.php on line 35

En

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /customers/after-party.nl/after-party.nl/httpd.www/Forum/Topiclist.php on line 115
En als je nou veld1, veld2 (wel jouw velden van jouw tables) gebruikt?, dus niet met de a en b ervoor.

Reageren