Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/06/2007, 13h05   #1
Candidat au titre de Membre du Club
 
Inscription : janvier 2005
Messages : 48
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 48
Points : 12
Points : 12
Par défaut [SQL] Requete avec ordre correspondant à la clause WHERE

Bonjour,

J'effectue la requete suivante :
$query = "SELECT ID,TITRE,DATE FROM vdo WHERE ID='7239' OR ID='5301' OR ID='6750'";

Lorsque j'affiche ces resultat, il s'affichent de 5301 puis 6750 puis 7239 or ce que j'aimerai c'est qu'il s'affichent en fonction de l'ordre de la clause WHERE c'est à dire 7239, 6750, 5301.

Je ne les tri pas via l'id parce que je recuprère cet ordre d'un traitement php.

QQ'un connaitrait une possibilité ?

D'avance Merci
yobogs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2007, 13h48   #2
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 451
Points : 5 451
Salut

C'est un tri décroissant par rapport à ID ou juste une coïncidence ?
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2007, 13h58   #3
Candidat au titre de Membre du Club
 
Inscription : janvier 2005
Messages : 48
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 48
Points : 12
Points : 12
Salut,

J'me suis planté ds ce que j'aimerai obtenir : 7239, 5301, 6750.
Donc c'est pas un tri decroissant par rapport à ID
yobogs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2007, 14h05   #4
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 451
Points : 5 451
Je ne pense pas que ce soit possible par sql. En revanche comme tes valeurs proviennent d'un traitement php, on peut peut-être creuser de ce côté.

D'où : peux-tu donner le code qui va avec ta requête?
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2007, 14h34   #5
Candidat au titre de Membre du Club
 
Inscription : janvier 2005
Messages : 48
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 48
Points : 12
Points : 12
En fait je construit ma requete comme ça :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$AND = "";
 
$i = 1;
foreach ($arrcontenu as $key => $val) {   
	$decomp=explode(":",$val);
	$ID= $decomp[0];
 
	if(($val != "") AND ($i >= $debut) AND ($i <= $fin)){
		IF($i == $debut){
			$AND .= " ID ='".$ID."'";
		}
		ELSE{
			$AND .= " OR ID ='".$ID."'";
		}
	}
 
	$i++;
}
Les données proviennent d'un array qui a été trié via usort ...

le $AND me donne la clause WHERE.

Merci pour ton aide
yobogs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2007, 14h32   #6
Candidat au titre de Membre du Club
 
Inscription : janvier 2005
Messages : 48
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 48
Points : 12
Points : 12
SELECT ID,TITRE,DATE FROM vdo WHERE ID IN ( '7239', '5301', '6750' ) ORDER BY FIELD(id, '7239', '5301', '6750')

Si jms ça interesse qq'un
yobogs est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h34.


 
 
 
 
Partenaires

Hébergement Web