Je suis en train de construire un système de notes sur mon site et je suis arrivé au stade où les utilisateurs peuvent poster des notes dans la base de données MySQL en utilisant PHP, puis PHP les imprime sur une page. Cependant, quand ils impriment/répercutent, le plus ancien apparaît en premier, mais je veux le plus récent en premier. Je veux aussi qu'ils soient limités à 10, de sorte que seuls 10 apparaissent sur la page. Voici mon code PHP, votre aide sera grandement appréciée:
// initialize some variables
$notedisplaylist = "";
$myObject = "";
$result = mysql_query("SELECT * FROM notes WHERE note_author_id='$u_id' ORDER BY date_time");
while($row = mysql_fetch_array($result)){
$note_title = $row["note_title"];
$note_body = $row["note_body"];
$date = $row["date_time"];
$notedisplaylist .= '<h2>' . $note_title . '</h2><br /><p>' . $note_body . '</p><hr /><p>Noted: ' . $date . '</p><hr /><br />';
}
Cela devrait le faire:
$result = mysql_query("SELECT * FROM notes WHERE note_author_id='$u_id' ORDER BY date_time DESC LIMIT 0, 10");
utilisation:
SELECT * FROM notes WHERE note_author_id='$u_id' ORDER BY date_time DESC LIMIT 10
DESC: ordre décroissant (du plus récent au plus ancien) LIMITE 10: 10 premiers enregistrements trouvés.
Essayer
$result = mysql_query("SELECT * FROM notes WHERE note_author_id='$u_id' ORDER BY date_time DESC LIMIT 10");
Pour une explication plus détaillée sur ORDER
et LIMIT
, consultez les articles du doc MySQL sur tri des lignes et la syntaxe de base select (recherchez une puce décrivant LIMIT
).
donner comme
ORDER BY date_time DESC
sinon, vous les triez par ordre croissant. C’est pourquoi les plus vieux viennent en premier
Faire ceci
$result = mysql_query("SELECT * FROM notes WHERE note_author_id='$u_id' ORDER BY date_time DESC LIMIT 0, 10");
Si vous voulez que votre LIMIT soit une variable, je l’ai nommée $ limit:
"SELECT * FROM tbl ORDER BY input_date DESC LIMIT 0, $limit";