Si tu utilises PDO pour ta page Web, tu fais $bdd->query('SELECT * FROM Chat ORDER BY ID DESC');
Tu ne pourras pas l'ordonner correctement dès l'écriture, sachant que les ID sont normalement pourvus de l'attribut auto_increment.
Tiens, je te passe le code de ce que j'avais fait l'autre jour :
<?php
try
{
// On se connecte à MySQL
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=base', 'root', 'password', $pdo_options);
// On récupère tout le contenu de la table jeux_video
$reponse = $bdd->query('SELECT * FROM chat ORDER BY ID DESC');
// On affiche chaque entrée une à une
while ($donnees = $reponse->fetch())
{
?>
<strong><?php echo htmlspecialchars($donnees['Pseudo']); ?></strong> : <?php echo htmlspecialchars($donnees['Message']); ?><br />
<?php
}
$reponse->closeCursor(); // Termine le traitement de la requête
}
catch(Exception $e)
{
// En cas d'erreur précédemment, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}
?>
++
EDIT : Si tu veux mettre la date dans le bon ordre :
<?php
try
{
// On se connecte à MySQL
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=base', 'root', 'password', $pdo_options);
// On récupère tout le contenu de la table jeux_video
$reponse = $bdd->query('SELECT ID,text, DAY(date) AS jour,MONTH(date) AS mois, YEAR(date) AS Annee, HOUR(date) AS heure, MINUTE(date) AS minute, SECOND(date) AS seconde FROM chat ORDER BY ID DESC');
// On affiche chaque entrée une à une
while ($donnees = $reponse->fetch())
{
?>
<strong><?php echo htmlspecialchars($donnees['Pseudo']); ?></strong> : <?php echo htmlspecialchars($donnees['Message']); ?> - <?php echo '' . $donnees['heure'] . ':' . $donnees['minute'] . ':' . $donnees['seconde'] . ' le ' . $donnees['jour'] . '/' . $donnees['mois'] . '/' . $donnees['annee'] . ''; ?><br />
<?php
}
$reponse->closeCursor(); // Termine le traitement de la requête
}
catch(Exception $e)
{
// En cas d'erreur précédemment, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}
?>
EDIT 2 : Je pense que c'est un problème avec Auto_increment à ID, est-ce que tu l'as mis ?