Ik wil graag dat op een bepaalde pagina de drie laatst toegevoegde rijen weergegeven worden van mijn database. Daarnaast wil ik ook dat de laatst toegevoegde rij bovenaan wordt weergegeven. Dit is het stuk script dat me het belangrijkste lijkt voor deze functie:

$sql = "SELECT * FROM ... LIMIT 3";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result)) {

Het probleem is echter dat hij wel drie rijen weergeeft, maar na 4 posts de volgorde in de war wordt geschopt. Weet iemand hoe dit de voorkomen is, zodat de rijen in de oorspronkelijke volgorde blijven?

Alvast bedankt.
een ORDER BY meegeven in de SELECT
Ja, zoiets dacht ik al, maar wat moet het dan zijn? ORDER BY...?
ORDER BY ID DESC LIMIT 3
wanneer je een oplopend id in je tabel hebt.
anders op een datum wellicht ?
ORDER BY ....
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /status.php on line 36
Marcus Tullius op 27/07/2010 11:48:14

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in status.php on line 36


Laat eens je hele query code zien, want dit is gewoon gissen tot we een ons wegen natuurlijk ;)
Dan zal de query mislukt zijn.
Bouw foutafhandeling in en echo de query eens.
<?php
if ($_POST["submit"] && $_POST["title"] && $_POST["posts"] && $_POST["name"]) {

$db = mysql_connect("localhost", "naam", "wachtwoord")
or die("Could not connect to the database: " . mysql_error());
mysql_select_db("database", $db);
$sql = "INSERT INTO bugs (title,post,date,name) VALUES (
'".addslashes($_POST['title'])."',
'".addslashes($_POST['posts'])."',
'".addslashes(date('F d, Y'))."',
'".addslashes($_POST['name'])."')";
if (!mysql_query($sql)) {
echo "Fail.";
} else {
echo "Success!";
}
mysql_close($db);

}
Probeer regel 10 dit eens:

'".date('Y'-'d'-'f')."',

Reageren