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 19/06/2006, 10h55   #1
Membre du Club
 
Inscription : mars 2005
Messages : 282
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 282
Points : 66
Points : 66
Par défaut [SQL] comment lié deux requete

salut voici ma question

je voudrai liée deux requete je m'explique

j'ai besoin deux faire 2 requetes qui ont les meme attribut la seule difference est comment je la gere en fonction du donné dans un cas il faut que je group by dans l'autre non mais j'ai besoin de ces 2 information donc je voudrai faire les 2 requete et les regrouper pour ensuite faire la lecture ligne par ligne pour afficher le tout

ex:
Code :
1
2
3
 
"SELECT * FROM base where ok="True" GROUP BY Nom"
"SELECT * FROM base where ok="False"
je voudrai recuperer
Nom | ok
-------------------------
toto True
titi True
tata True
lolo False
lolo False
lili False
...


j'espere avoir ete claire

merci pour l'aide d'avance
Tempotpo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2006, 11h12   #2
Membre éclairé
 
Avatar de TucSale
 
Inscription : novembre 2005
Messages : 265
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : novembre 2005
Messages : 265
Points : 301
Points : 301
Envoyer un message via MSN à TucSale
Salut,

Avec un ORDER BY ok ca te convient pas?

"SELECT * FROM base where GROUP BY Nom ORDER BY ok DESC
TucSale est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2006, 11h22   #3
Membre du Club
 
Inscription : mars 2005
Messages : 282
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 282
Points : 66
Points : 66
le order by va juste me le ranger mai ne va pas modifier les donnée choisi or il le faut si tu regarder l'exemple pour ok = false j'ai deux fois lolo alor que j'ai pa de doublon au niveau de ok = true il faut que je fasse se mecanisme

bien essayer
Tempotpo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2006, 11h39   #4
Modérateur
 
Avatar de Cybher
 
Homme Michel
Consultant informatique
Inscription : mai 2005
Messages : 3 006
Détails du profil
Informations personnelles :
Nom : Homme Michel
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Consultant informatique
Secteur : Conseil

Informations forums :
Inscription : mai 2005
Messages : 3 006
Points : 4 039
Points : 4 039
tu peux toujours faire un UNION des 2 requetes.
Cybher est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2006, 11h43   #5
Membre du Club
 
Inscription : mars 2005
Messages : 282
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 282
Points : 66
Points : 66
comment on fait je connai pas la syntaxe de cette methode

merci
Tempotpo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2006, 11h45   #6
Modérateur
 
Avatar de Cybher
 
Homme Michel
Consultant informatique
Inscription : mai 2005
Messages : 3 006
Détails du profil
Informations personnelles :
Nom : Homme Michel
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Consultant informatique
Secteur : Conseil

Informations forums :
Inscription : mai 2005
Messages : 3 006
Points : 4 039
Points : 4 039
Code :
1
2
3
SELECT * FROM base where ok="True" GROUP BY Nom
UNION
SELECT * FROM base where ok="False"
Cybher est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2006, 13h01   #7
Membre Expert
 
Homme
Inscription : janvier 2004
Messages : 1 238
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2004
Messages : 1 238
Points : 1 421
Points : 1 421
les union ne sont en général par supportées par les versions courantes installées de mysql.

Est-ce que le fait que le tri ne SOIT PAS fait lors de la requete en FALSE est important ?

sinon, tu peux faire :

Code :
1
2
3
4
SELECT *
FROM table
WHERE ok IN ('True', 'False')
ORDER BY ok DESC, nom ASC
A noter que j'espere que ton champ ok ne contient pas que "true" et "false"... sinon c'est carrement pas optimisé... un TINYINT(1) aurait suffit.
__________________
PHP :
Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production)
Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error());
Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable.
Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/
Fladnag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2006, 13h11   #8
Membre du Club
 
Inscription : mars 2005
Messages : 282
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 282
Points : 66
Points : 66
oui il faut que le group by se fasse que lorsque la valeur vos true

sinon pour l'histoire du TInYInt() je ne connais pa mai moi pr info j'ai mit char (1) je croi

je c pa si c'est le mieux
Tempotpo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2006, 13h44   #9
Membre du Club
 
Inscription : mars 2005
Messages : 282
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 282
Points : 66
Points : 66
j'ai tester le UNION cela a fonctionné comme je le desirai
sinon je suis interessé par ta remarque sur l'attribut dans champ de type boolean car moi j'ai mi un char(1)

merci pour l'aide
Tempotpo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2006, 13h48   #10
Modérateur
 
Avatar de Cybher
 
Homme Michel
Consultant informatique
Inscription : mai 2005
Messages : 3 006
Détails du profil
Informations personnelles :
Nom : Homme Michel
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Consultant informatique
Secteur : Conseil

Informations forums :
Inscription : mai 2005
Messages : 3 006
Points : 4 039
Points : 4 039
si tu as mis un char(1) cest deja pas si mal.
quelles sont les valeurs possibles (lettre ou chiffre?)
sinon il faut que tu modifie ta colonne
regarde du coté de ALTER


bon courage
Cybher est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2006, 13h51   #11
Membre Expert
 
Homme
Inscription : janvier 2004
Messages : 1 238
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2004
Messages : 1 238
Points : 1 421
Points : 1 421
oui, char(1) c'est moins pire que blob c'est sur ;o)

mais "char(1)" reste un type caractere (donc pouvant prendre 256 valeurs différentes)

tinyint(1) restreint les valeurs a 10 valeurs possibles (0,1,2,3,4,5,6,7,8,9)
et plus un champ est restreint dans ses valeurs, plus l'utilisation de ce champs dans une clause where est optimisé.

Tu pourrais donc utiliser 0 pour FALSE et 1 pour TRUE par exemple.

En pratique, ca changera pas grand chose quand meme, on voit ici :
http://dev.mysql.com/doc/refman/4.1/...uirements.html
qu'un tinyint et un char(1) prendront la meme place. Par contre, l'indexation de la colonne se fera plus facilement sur un type entier que sur un caractere
__________________
PHP :
Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production)
Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error());
Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable.
Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/
Fladnag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2006, 15h52   #12
Membre du Club
 
Inscription : mars 2005
Messages : 282
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 282
Points : 66
Points : 66
ok merci je capte mieux je vai voir pour modifier mon champs merci encore
Tempotpo 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 03h58.


 
 
 
 
Partenaires

Hébergement Web