Forum Clubic

Afficher les 10 derniere messages

Bonjour, alors je m’explique, je voudrais afficher dans mon chat les 10 derniers messages qui ont été posté mais je veux les voir apparaitre ( de haut en bas ) du plus vieux au plus récent. Actuellement j’utilise la requete suivante
$donnee = mysql_query(“SELECT * FROM chat ORDER BY id DESC LIMIT 0,10”);

ensuite j’affiche le contenue de ma variable dans un while

while ($donnee_array = mysql_fetch_array($donnee))
{
echo $donnee_array[‘pseudo’];
}

le problème c’est que je vois les messages ( de haut en bas ) du plus récent au plus vieux… étant donné que j’ai classé par ordre décroissant. si quelqu’un a une solution qui me fasse signe merci

Plusieurs solutions:

  1. au niveau de ta requête, tu peux faire ça :
(
  SELECT * FROM chat ORDER BY id DESC LIMIT 10
) UNION (
  SELECT * FROM chat ORDER BY id DESC LIMIT 0
)  ORDER BY id ASC

(si mySQL est intelligent, la seconde requête renvoie rien, et est rapide, sinon t’es baisé)

  1. Ou ça :
SELECT * FROM chat WHERE id IN(SELECT id FROM chat ORDER BY id DESC LIMIT 10) ORDER BY id ASC
  1. ou ça:

a) dans phpmyadmin:

CREATE VIEW dernier_evenement AS (SELECT * FROM chat ORDER BY id DESC LIMIT 10)

b) dans ton code SELECT * FROM dernier_evenement ORDER BY id ASC

  1. ou en PHP…

Je suggère une requète correllée, ça va te permettre de réinversé l’ordre…


$query = "
		SELECT 
			*
		FROM
		(
			SELECT 
				* 
			FROM 
				chat 
			ORDER BY 
				id DESC 
			LIMIT 
				0,10
		)chatScreen
		ORDER BY
			chatScreen.id ASC
		";
$rezSet = mysql_query($query);

[code]

Pas mal aussi. J’avais tenté ça perso:

(… sa requête …) ORDER BY id ASC

Mais ça ne marchait pas.

Petit commentaire personnel, mais tu devrais (scorypso) lorgner du coté de librairie BD tel que PDO, qui offre une meilleur compatibilité et sécurité…

Support de l’orienté objet
support de n’importequel gestionnaire bd (Oracle/mysql, etc)… comme ça si tu veux porter ton appli sur un autre serveur qui a dison oracle SQl, tu n’es pas pris pour modifier ton code.
Protection contre l’injection sql meilleur.

Personnellement, je me sers des fonctions mysql_ qu’à des fins de test.

bonjour,
Merci de m’avoir répondu je vais essayer tout ça et je vous tiens au courant!! j’espere que ça va fonctionner

alors, j’ai essayé t’es deux premieres solution et j’ai pour chacune d’elle le message derreur suivant :

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /mnt/104/sda/1/7/cerveaurapide/chat.php on line 62

J’ai essayé la 3ème solution est tout fonctionne parfaitement, J’ai eu peur de ne pas savoir l’utilisé j’avais jamais utlise view… !

Merci encore, Même à nicolegrand même si je n’ai pas utiliser ta requête, par ailleur je n’avais pas compris tout dans ton dernier message je suis encore novice et librairie bd pdo… j’ai jamais entendu !! bonne journée à vous

ca3.php.net…

:slight_smile:

Les vues, c’est bien pratique n’empêche:)