Goedenavond,

Ik wilde zonet wat toevoegen aan mijn script, maar blijkbaar vind MySQL het moeilijk om de laatste reactie van een onderwerp te pakken. Ook pakt hij het verkeerde id en het begint ondertussen nogal vervelend te worden. Dit is mijn query:
	$result = mysqli_query($db, "
		SELECT t.title, t.id, t.laster, t.board, u.username, u.id, t.last_msg, t.last_date
			FROM " . $sfp['db_pref'] . "threads as t
			LEFT JOIN " . $sfp['db_pref'] . "users as u ON t.laster = u.id
			WHERE t.id='" . $id_msg . "'
			ORDER BY last_msg DESC
	");

En dit geeft de tekst weer:
	while($msginfo = mysqli_fetch_array($result))
		return '
			<a href="' . $sfp['forum_file'] . '?thread=' . $msginfo['id'] . '">' . $msginfo['title'] . '</a><br />
			By <a href="' . $sfp['forum_file'] . '?act=profile&u=' . sfp_get_id($msginfo['username']) . '">' . $msginfo['username'] . '</a><br />
			On ' . date("F j, Y, g:i a", $msginfo['last_date']);

Blijkbaar pakt hij alleen het bericht met het id "1" en ik kan de fout echt niet vinden. Ik denk dat het komt omdat het id van de gebruiker 1 is, maar ik kan er echt niet meer achter komen. Alvast bedankt voor de reacties!

Robert
Zet de query string in een aparte string en echo hem. Dan kun je zien wat er gebeurt.
Lijkt me sterk dat MySQL zomaar ergens iets vandaan haalt.
Bedankt voor de reactie :D Dit is de output van de query:
		SELECT t.title, t.id, t.laster, t.board, u.username, u.id, t.last_msg, t.last_date
			FROM sfp_threads as t
			LEFT JOIN sfp_users as u ON t.laster = u.id
			WHERE t.id='26'
			ORDER BY last_msg DESC
Ten eerste wat staat er in last_msg en wat als je op datum van de berichten sorteerd?
Heel erg bedankt voor de reactie :) In het nieuwste topic staat "87948739485" als last_msg en in het oudste topic staat "34534534" als last_msg. Ik weet dat het geen timestamps zijn, maar ik wist zo even niet hoe ik zo snel aan een timestamp moest komen dus ik heb maar wat bedacht totdat ik een postformulier heb. Op datum sorteren heb ik al, maar op de een of andere manier pakt ie 'm niet.
Maar is het wel een integer, of een string? Als het een string is loopt dat sorteren namelijk snel in de soep.
Wat doet trouwens die return in de while loop?
Die return stuurt de tekst die is aangemaakt met die functie terug naar het vakje waar de tekst weergegeven moet worden. :)

<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
?>


Misschien zie je een error?
Robert van der Leest op 05/02/2012 19:08:22

Die return stuurt de tekst die is aangemaakt met die functie terug naar het vakje waar de tekst weergegeven moet worden. :)


Dat is dus altijd het eerst gevonden record.

Reageren