Accueil > Forum > > > > Ordre des id dans le SELECT non pris en compte dans le WHILE
Ordre des id dans le SELECT non pris en compte dans le WHILE
lundi 21 mars 2011 à 17:01:02 |
Ordre des id dans le SELECT non pris en compte dans le WHILE

sagat06
|
Bonjour à tous,
j'ai une requête toute simple du genre:
$sql="SELECT pseudo,avatar FROM membres WHERE membre_id IN ('".$Ris[0]."','".$Ris[1]."','".$Ris[2]."')";
$result= mysql_query($sql) or die('');
J'en extrais le résultat comme ceci:
while ($Res = mysql_fetch_row($result) ){
$biz.="<div><a href='profil/".$Res[0]."' title='Voir le profil'><img src='image/".$Res[1]."' border='0' /></a><br /><strong>".$Res[0]."</strong></div>";
}
Mon problème est que les id précisés dans la 1ère requête ne sont pas forcément classés dans un quelconque ordre numérique alors que le while me les rends ordonnée du plus petit au plus grand. Pour obtenir ce que je veux (garder le même ordre d'entrée que dans le SELECT) je suis obligé d'utiliser le système D.
N'existe-t-il pas un moyen de forcer le while à me rendre les données dans le même ordre que celui de la requête SELECT ?
Merci d'avance
Signé Sagat
|
|
mardi 22 mars 2011 à 16:52:27 |
Re : Ordre des id dans le SELECT non pris en compte dans le WHILE

phpAnonyme
|
Pour désigner l'ordre d'affichage d'une requête il faut utiliser la clause sql ORDER BY.
______________________________________________________________________
|
|
lundi 28 mars 2011 à 21:21:34 |
Re : Ordre des id dans le SELECT non pris en compte dans le WHILE

ghuysmans99
|
Code PHP : $sql = "SELECT pseudo, avatar FROM membres WHERE membre_id IN ('{$Ris[0]}','{$Ris[1]}','{$Ris[2]}') ORDER BY membre_id;";
VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
|
|
jeudi 31 mars 2011 à 15:38:59 |
Re : Ordre des id dans le SELECT non pris en compte dans le WHILE

sagat06
|
Désolé, mes aucunes de vos méthodes ne fonctionne.
La débrouille me permet d'obtenir ce que je souhaite.
@phpAnonyme: j'obtiens les valeurs de Ris[] par une requête utilisant la clause ORDER BY sur un champs donné. Cette première requête me renvoie des id de membres qui eux n'ont aucun ordre particulier.
Mon problème est que le while me donne bien les infos correspondantes mais pas forcément dans le bon ordre.
Signé Sagat
|
|
jeudi 31 mars 2011 à 15:48:41 |
Re : Ordre des id dans le SELECT non pris en compte dans le WHILE

phpAnonyme
|
Le While n'a rien à voir dedans.
Fais voir ta requête avec le ORDER BY
______________________________________________________________________
|
|
jeudi 31 mars 2011 à 15:53:04 |
Re : Ordre des id dans le SELECT non pris en compte dans le WHILE

phpAnonyme
|
N'existe-t-il pas un moyen de forcer le while à me rendre les données dans le même ordre que celui de la requête SELECT ?
Petite précision par défaut le SELECT renvoie les données tel qu'il les à trouver.
______________________________________________________________________
|
|
jeudi 31 mars 2011 à 16:05:19 |
Re : Ordre des id dans le SELECT non pris en compte dans le WHILE

sagat06
|
Salut,
j'ai une tâche Cron qui rempli correctement une table donnée.
Pour obtenir mes infos, j'utilise les requêtes suivantes:
$sql="SELECT membre_id1,membre_id2,membre_id3,score1,score2,score3 FROM matable WHERE ligne_id='xxx'";
$result=mysql_query($sql) or die();
$Ris=mysql_fetch_row($result);
$sql1= "SELECT membre_id,pseudo,avatar FROM membres WHERE membre_id IN ('".$Ris[0]."','".$Ris[1]."','".$Ris[2]."')";
$result1= mysql_query($sql1) or die('Echec 1');
Avec score1 > score 2 > score 3
En faisant un tableau (membre_idX,scoreX) j'en déduis l'ordre souhaité
Sinon le Order By était dans la tâche cron.
Signé Sagat
|
|
jeudi 31 mars 2011 à 16:19:59 |
Re : Ordre des id dans le SELECT non pris en compte dans le WHILE

phpAnonyme
|
j'ai une tâche Cron qui rempli correctement une table donnée.
Sinon le Order By était dans la tâche cron.
Si la tâche cron sert à insérer des données je ne vois pas pourquoi tu utilise un ORDER BY dedans.
Néanmoins, au cas où tu ne le saurais pas ou que tu n'ai pas fais de recherche dessus si tu ne définit pas l'ordre de sortie(croissant ou décroissant) souhaité dans la clause, par défaut l'ordre est croissant(si je me souviens bien)
SELECT membre_id1,membre_id2,membre_id3,score1,score2,score3 FROM matable WHERE ligne_id='xxx'
J'ai du mal à saisir, la structure de cette table, voir de l'autre également. N'est ce pas un seul membre qui effectue les scores 1, 2 et 3?
Pour aller vite et de manière simple il faut me détailler le fonctionnement de tes tables et ce que tu cherche à faire.
- Que souhaite tu afficher ?
- Dans quel ordre ?
- A quoi correspond les champs : membre_id1,membre_id2,membre_id3 ?
Ton membre à plusieurs ID ?
Voilà.
______________________________________________________________________
|
|
jeudi 31 mars 2011 à 16:31:36 |
Re : Ordre des id dans le SELECT non pris en compte dans le WHILE

sagat06
|
Re,
1 table membres: membre_id, pseudo, avatar
1 table classement: ligne_id (identifiant du jeu), 3 meilleurs membres avec leur score respectifs (membre_id1, membre_id2, membre_id3, score1,..)
Ma tâche cron cherche le membre_id et le score des 3 meilleurs membres pour chaque jeu, et inscrit les résultats dans la table classement. Un simple SELECT sur cette table me permet de connaitre le trio de tête.
J'aurai pû faire une table classement avec plusieurs lignes par jeu, cela m'aurait permis de faire directement un seul Select sur 2 tables et de tout obtenir dans l'ordre. L'idée aurait put être:
ligne_id, top1, membre_id, score
ligne_id, top2, membre_id, score.....
Mais j'ai préféré utiliser 1 seule ligne par jeu. Un simple système D me permet d'obtenir ce que je désire. Donc je postais pour savoir s'il existait une manière de sortir les données d'un SELECT non pas dans l'ordre trouvé mais dans un ordre prédéfini et quelconque à la fois (celui inscrit dans la clause IN)
Merci encore de te soucier de mon problème, et s'il n'y a pas d'autres solutions que de modifier la structure de mes tables, je continuerai d'utiliser la débrouille comme rescousse
Signé Sagat
|
|
jeudi 31 mars 2011 à 16:45:52 |
Re : Ordre des id dans le SELECT non pris en compte dans le WHILE

phpAnonyme
|
Non tu ne peut effectivement pas. Pas directement en tout cas, i.e système D comme tu dis.
Le choix que tu as pris n'est effectivement pas la meilleure pour ce que tu veux en faire.
______________________________________________________________________
|
|
Cette discussion est classée dans : ordre, while, requête, select, id
Répondre à ce message
Sujets en rapport avec ce message
Somme, valeur unique depuis requête [ par ltab ]
Bonjour,Je cherche en vain depuis des lustres à faire l'addition de champs provenant d'une requête$sql = "select appartement FROM chambres WHERE id =
affichage d'une requête comportant de deux autres requêtes [ par vir76 ]
Je dispose de 3 requêtes :la 1ère :$requête fournitures="SELECT T_ANNEE.ANNEE_ANNEE, T_SOUSDIRECTION.ID_SOUSDIRECTION, T_SOUSDIRECTION.SOUSDIRECTION_N
problème avec tablo et balise select dynamique [ par lookoom ]
salutj'me casse les dents sur un script et j'viens chercher un peu d'aide !!j'ai un tablo avec une colonne contenant des "select" pour choisir le nomb
afficher la valeur d'une table dans un menu select [ par inconnue ]
Bonjour, j'affiche un menu select dynamiquement constitué par des valeurs dans une table,dans ma page de modification des données, je souhaiterai donc
requête count [ par Tomcube ]
Salut !J'ai une table news avec mes news, une table commentaires où sont stockés les commentaires de ces news. Dans ma page de news (qui en affiche 30
Requête SQL [ par alonsyl ]
Bonjour,Sous Access, j'execute une 1ère requête ("4_ventes"):SELECT Mid([reference],1,4) AS ref, VENTES.nb_ventes FROM VENTES;Puis, j'utilise ce résul
requête maitre/détail et php [ par ejmana ]
BonjourVoilà mon soucis: je dispose de 2 tables, une contenant un article, avec différentes données, et une contenant les auteurs.Dans la table articl
Problème de requête de non-correspondance [ par dphil94 ]
Bonjour a tous... Voici mon problème ;J'ai 2 tables table1 "qcm_sujet" avec les champs id, sujet, ....table2 "qcm_score" avec les champs id, sujet, no
Comment remmetre les ID en ordre. [ par BenXbox ]
Salut à tous,Voila j'aimerez bien savoir comment je peut remmetre les ID dans l'ordre, c'est à dire :- J'ai dans ma table un message qui à l'ID 1 puit
Requête PHP Mysql [ par nino69 ]
Bonjour, j'ai 3 tables: jet_clients, clients_albums et album Note importante la table clients_albums à les deux clés etrangères des deux autre tables.
Livres en rapport
|
Derniers Blogs
ROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGEROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGE par Matthieu MEZIL
Si vous utilisez Roslyn et que vous vous voulez vous simplifier le code du code rewriter, je vous conseille d'installer mon NuGet package RoslynHelper ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|