Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > PHP > PHP & SGBD > PHP & MySQL

PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.

Réponse
 
Outils de la discussion
Vieux 11/10/2008, 14h31   #1 (permalink)
Futur Membre du Club
 
Date d'inscription: novembre 2007
Messages: 31
Par défaut Question un tri un peu particulier

bonjour!


J'ai deux requêtes imbriquées, (vori code ci-dessous, j'écris ca vite fait, il peux y avoir des erreurs :-)) .

La variable $valeur est le produit de la sous-requête. J'aurais besoin de savoir svp si il était possible d'effectuer une opération de tri ASC et DESC selon cette variable $valeur. Comme elle n'est issue que de la sous-requête, je me demande si c'est techniquement faisable. Si c'est possible avez vous une idée de la façon de le réaliser ???

Merci pour votre aide !
Fx


Code :
$query = "select * from `table`";
$result = mysql_query($query); 
$i=1; 
while ( $row = mysql_fetch_array($result))
{
$id = $row["id"];

$query2 = "select * from `table2` WHERE id='$id '";
$result2 = mysql_query($query2);
while ( $row2 = mysql_fetch_array($result2))
{
$valeur = $row2["valeur"];
echo "bla bla bla bla";
}
}	
$i++;
infiniti est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 11/10/2008, 15h24   #2 (permalink)
Modérateur
 
Date d'inscription: décembre 2007
Localisation: Paris
Âge: 21
Messages: 886
Par défaut

En ajoutant la mention ORDER BY dans ta requête SQL ?
Code :
$query = "select * from `table`";
$result = mysql_query($query); 
$i=1; 
while ( $row = mysql_fetch_array($result))
{
$id = $row["id"];

$query2 = 'select * from `table2` WHERE id='.$id.' ORDER BY valeur DESC';
$result2 = mysql_query($query2);
while ( $row2 = mysql_fetch_array($result2))
{
$valeur = $row2["valeur"];
echo "bla bla bla bla";
}
}	
$i++;
__________________
site perso : Les saveurs de l'Atlas

Une question ? Quelques réponses !
ThomasR est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 11/10/2008, 15h47   #3 (permalink)
Futur Membre du Club
 
Date d'inscription: novembre 2007
Messages: 31
Par défaut

salut,

hmm non en fait j'ai besoin de faire un "order BY valeur DESC" sur la requête n°1 $query, alors que valeur est justement le produit de la sous-requête.

J'ai un problème de chronologie dans mes évènements !
infiniti est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 11/10/2008, 16h00   #4 (permalink)
Membre émérite
 
Avatar de grabriel
 
Date d'inscription: septembre 2006
Messages: 879
Par défaut

Salut,

Si j'ai bien compris :
Etape 1 : select * from table; qui te permet de récupérer l'id
Etape 2 : select * from table2 where id=id order by valeur
Etape 3 : tu récupères la valeur.

Ton objectif c'est de faire un order by la valeur que tu récupère en étape 3 sur la requete de l'étape 1?

Tu as effectivement un problème de chronologie!!

Donne nous plus d'infos pour pouvoir t'aider.
grabriel est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 11/10/2008, 16h26   #5 (permalink)
Invité régulier
 
Date d'inscription: octobre 2008
Messages: 16
Par défaut

et si tu faisais

Code :
$query="
SELECT 
table.id,table2.valeur 
FROM `table` 
LEFT JOIN table2 
ON ( table2.id=table.id) 
WHERE table2.id IS NOT NULL
ORDER BY table2.valeur ASC"
puis

Code :
$result = mysql_query($query); 
$i=1; 
while ( $row = mysql_fetch_array($result))
{
$id=$row["id"];
$valeur = $row["valeur"];
echo "bla bla bla bla";
}	
$i++;
F_L_Stoi est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 11/10/2008, 16h51   #6 (permalink)
Futur Membre du Club
 
Date d'inscription: novembre 2007
Messages: 31
Par défaut

ah oui les jointures, je n'y avais pas pensé :-)
merci pour ton code, je vais l'essayer de suite !
infiniti est déconnecté   Envoyer un message privé Réponse avec citation
NEWS PHPFAQ PHPCOURS PHPSOURCES PHPLIVRES PHPSCRIPTS PHPOUTILS PHPCOMPARATIFSPHP TVZend Framework

Réponse

Précédent   Forum des développeurs > PHP > PHP & SGBD > PHP & MySQL

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide