MySQL et php

Résolu/Fermé
Lagiol Messages postés 146 Date d'inscription mardi 1 juin 2010 Statut Membre Dernière intervention 15 juin 2012 - 1 mars 2011 à 18:46
Webster95 Messages postés 553 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 9 juillet 2013 - 1 mars 2011 à 19:24
Bonjour, voila mon souci en php : je viens d'apprendre comment afficher le contenu de plusieurs tables MySQL par l'intermédiaire de php. Les tables ne sont constituées que de "news". Le problème est que php m'affiche la news la plus récente en dernier, ce qui est embêtant. Comment corriger cela (en clair inverser l'ordre d'affichage des tables.) Merci.
Voici un aperçut :

  <?php
  try
  {
  	$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
  	$bdd = new PDO('mysql:host=localhost;dbname=news', 'root', '', $pdo_options);

  $reponse = $bdd->query('SELECT * FROM news');

 while ($donnees = $reponse->fetch())
  {
  ?>

  <span class="titre_news">
  <?php echo $donnees ['titre'] ?>
  </span>
     <br /><br />

  <?php echo $donnees ['contenu'] ?>
     <br /><br /><br /><br /><br /><br />
    <?php
    }
    
    $reponse->closeCursor();

}
catch(Exception $e)
{
    
    die('Erreur : '.$e->getMessage());
}


?>




3 réponses

chris05 Messages postés 349 Date d'inscription jeudi 13 mars 2008 Statut Membre Dernière intervention 24 septembre 2024 28
1 mars 2011 à 18:57
Je suppose que ta table news possède un identifiant (clé primaire).
Il te suffit alors de changer ta requête comme ceci par exemple :

SELECT * FROM news order by id desc;

A tester...
0
Lagiol Messages postés 146 Date d'inscription mardi 1 juin 2010 Statut Membre Dernière intervention 15 juin 2012 21
1 mars 2011 à 19:06
non, ne marche pas chez moi
0
chris05 Messages postés 349 Date d'inscription jeudi 13 mars 2008 Statut Membre Dernière intervention 24 septembre 2024 28
1 mars 2011 à 19:08
C'est à dire ?
Quels sont les champs de ta table news ?
Comment sont-ils remplis ?
Donnes nous + d'infos...
0
Lagiol Messages postés 146 Date d'inscription mardi 1 juin 2010 Statut Membre Dernière intervention 15 juin 2012 21
1 mars 2011 à 19:13
j'ai 3 "news", toutes constituées de
-titre ('news 1 ; news 2'....)
-id ('1 ; 2 ; 3')
-contenu
0
Webster95 Messages postés 553 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 9 juillet 2013 142
1 mars 2011 à 19:14
alors, classe tes ID du plus récent au plus ancien, ce qui équivaut a les classer de 3 vers 1...

SELECT * FROM news ORDER BY id DESC
0
Webster95 Messages postés 553 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 9 juillet 2013 142
1 mars 2011 à 19:13
Classe tu toutes tes news avec des ID à chaque NEWS, exemple, tu ajoute une news, elle aura l'ID 1, une deuxième, elle aura l'ID 2... ect...
Si tu as des ID, tu peux classer tes ID tu plus récent au plus ancien.
Sinon, pas possible d'ordonner tes news, sauf si tu as mis une date de post à la rigeur !


0
Lagiol Messages postés 146 Date d'inscription mardi 1 juin 2010 Statut Membre Dernière intervention 15 juin 2012 21
1 mars 2011 à 19:15
oui, oui, j'ai des ID, chaques ID correspond à la news (ex news 2 : id 2)
0
Webster95 Messages postés 553 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 9 juillet 2013 142
1 mars 2011 à 19:16
Dans ces cas la, tu peux classer tes ID du plus ancien au plus récent =)
3... 2... puis la 1 en dernier.

Pour cela==>
SELECT id,news,contenu FROM news ORDER BY id DESC
0
Webster95 Messages postés 553 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 9 juillet 2013 142
1 mars 2011 à 19:17
SELECT id,titre,contenu FROM news ORDER BY id DESC
0
Lagiol Messages postés 146 Date d'inscription mardi 1 juin 2010 Statut Membre Dernière intervention 15 juin 2012 21
1 mars 2011 à 19:19
ben c'est exactement ça que je viens de modifier et je ne vois aucun changement.
0
Webster95 Messages postés 553 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 9 juillet 2013 142
1 mars 2011 à 19:20
SELECT id,titre,contenu FROM news ORDER BY id ASC

Essaye celui la =D
0