Requête MySql + ORDER BY

Fermé
purefastandsimple
Messages postés
6
Date d'inscription
vendredi 27 juin 2008
Statut
Membre
Dernière intervention
28 juin 2008
- 27 juin 2008 à 16:47
Matio
Messages postés
671
Date d'inscription
mardi 6 mars 2007
Statut
Membre
Dernière intervention
25 janvier 2011
- 27 juin 2008 à 23:11
Bonjour,

Je me présente déjà. Je suis nouveau sur ce forum. J'avoue que cette inscription est étroitement liée à un petit problème de requête MySql et de codage PHP.

Voci mon code :

$resultat_ordre = mysql_query("SELECT * FROM nouveautes_ordre");
$tab_ordre = array();

while($info_ordre = mysql_fetch_object($resultat_ordre))
{
$tab_ordre[] = $info_ordre->id_nouveaute;
}

Mon tableau $tab_ordre[] permet de stocker des valeurs numériques grâce à la boucle WHILE
Ces valeurs doivent me servir pour afficher des informations selon ces valeurs (de ID).
EX. $tab_order peut contenir (10,19,22,18).

J'aimerais savoir comment faire une requête MySQL sur la table nouveautes me permettant d'afficher les informations triées en fonction du tableau mémoire $tab_order.

Dans mon exemple, la première information à afficher serait celle dont le ID vaut 10 puis 19, 22 et enfin 18 !

Quelqu'un aurait une piste ?

Je vous en remercie à l'avance.

Il est fort possible que mon approche est fausse. Je ne le prendrais pas mal si tel est le cas. On en apprend tous les jours.

1 réponse

Matio
Messages postés
671
Date d'inscription
mardi 6 mars 2007
Statut
Membre
Dernière intervention
25 janvier 2011
298
27 juin 2008 à 17:02
et si tu rajoute dans ta requête SELECT * FROM nouveautes_ordre ORDER BY id_nouveaute ASC
ça donne quoi ?
0
purefastandsimple
Messages postés
6
Date d'inscription
vendredi 27 juin 2008
Statut
Membre
Dernière intervention
28 juin 2008

27 juin 2008 à 19:10
Merci Matio pour ta réactivité,

J'ai du oublier de préciser un élément crucial.
Le première requête permet de lire une table MySQL nouveautes_ordre tandis que :

mysql_query("SELECT * FROM nouveautes WHERE statut='1'");
permet d'afficher les informations à l'écran (ici des nouveautés) et ces informations doivent être affichées justement en fonction de la première table newsletter_ordre.

Pour info, la structure de la table nouveautes_ordre est comme ceci :

id, id_nouveaute
1 18
2 19
3 22
4 10

et la structure de la table nouveautes est comme celà :

id, titre, texte, ...
10 ..., ...
18 ..., ...
19 ...,...
22 ...,...

Donc, l'idée, c'est d'afficher sur une page PHP toutes les nouveautés (table nouveautes) selon un ordre prédéfini (nouveautes_ordre)

Suis-je assez concis dans mon explication ?
0
Matio
Messages postés
671
Date d'inscription
mardi 6 mars 2007
Statut
Membre
Dernière intervention
25 janvier 2011
298 > purefastandsimple
Messages postés
6
Date d'inscription
vendredi 27 juin 2008
Statut
Membre
Dernière intervention
28 juin 2008

27 juin 2008 à 23:11
Re,
Donc je pense qu'il faut faire une jointure (comme ça les 2 tables seront "parallèles") :
SELECT * FROM tab1,tab2 WHERE nouveautes.id=nouveates_ordre.id_nouveate;
tu peux remplacer l'* par les champs qui devront s'afficher.

Voilà, j'espère que tu avanceras un peu.
Je vais me coucher
a+
0