web-dev-qa-db-fra.com

PHP et MySQL: Classement par date la plus récente et limite de 10

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 />';
}
12
James

Cela devrait le faire: 

$result = mysql_query("SELECT * FROM notes WHERE note_author_id='$u_id' ORDER BY date_time DESC LIMIT 0, 10");
26
Ackar

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.

10
Book Of Zeus

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).

7
gilden

donner comme

 ORDER BY date_time DESC

sinon, vous les triez par ordre croissant. C’est pourquoi les plus vieux viennent en premier

6
mithunsatheesh

Faire ceci

$result = mysql_query("SELECT * FROM notes WHERE note_author_id='$u_id' ORDER BY date_time DESC LIMIT 0, 10");
5
dubvfan87

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";
0
Ali