Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1484 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  avoir des virgules dans un resultat SQL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

avoir des virgules dans un resultat SQL

n°1989494
fireman243
attentif et tjrs vif!
Posté le 02-05-2010 à 19:38:15  profilanswer
 


bonjour surement tres simple a effectuer  
 
mais je ne trouve pas comment obtenir un résultat d'une requete SQL séparé par des virgules afin de pouvoir l'intégrer ds une variable et le réutiliser dans une autre requete .  
 
 
voici mon resultat  2338240125355689  suite a une requete SELECT * from matricule.  
 
et je voudrais obtenir cela  2338,2401,2535,5689
 
merciiiiiiiiiiiiiiiii  


---------------
Jeremy
mood
Publicité
Posté le 02-05-2010 à 19:38:15  profilanswer
 

n°1989550
antac
..
Posté le 03-05-2010 à 07:40:00  profilanswer
 

pour obtenir ce résultat sans virgule, tu utilises une boucle non ?
Dans ce cas fais une concaténation dans cette boucle.
 
$result = mysql_query("SELECT * FROM matricule" );
$resultat="";
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
   $result.=($result==""?",":"" ).$row['matricule'];
}
echo $result;

Message cité 1 fois
Message édité par antac le 03-05-2010 à 07:41:52
n°1989573
flo850
moi je
Posté le 03-05-2010 à 08:41:16  profilanswer
 

tu ne peux pas faire ta requete en une fois , genre  
SELECT bidule FROM truc WHERE matricule IN ( SELECT matricule FROM table)  
 
ou plus propre, avec une jointure

n°1989592
stef_dober​mann
Personne n'est parfait ...
Posté le 03-05-2010 à 09:50:17  profilanswer
 

et si c'était juste un problème d'affichage, un retour à la ligne manquant... ;)


---------------
Tout à commencé par un rêve...
n°1989594
stef_dober​mann
Personne n'est parfait ...
Posté le 03-05-2010 à 09:56:01  profilanswer
 

ou un truc du genre :

Code :
  1. $result = mysql_query("SELECT * FROM matricule" );
  2. $resultat = array();
  3. while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
  4.    $resultat[] = $row['matricule'];
  5. }
  6. echo implode(",",$resultat);



---------------
Tout à commencé par un rêve...
n°1989724
art_dupond
je suis neuneu... oui oui !!
Posté le 03-05-2010 à 13:18:54  profilanswer
 

il veut pas juste afficher un grand nombre "coupé" en lots de 4 chiffres [chien de mickey] que de rassembler plusieurs valeurs comme vous faites :??:

 

genre 10000000000 => 10.000.000.000

 


enfin ché pas c'est comme ça que je comprends sa question :)

 


Si c'est comme vous dites, je dirais "select concat(n1,',',n2,','...)"

Message cité 1 fois
Message édité par art_dupond le 03-05-2010 à 13:20:01

---------------
oui oui
n°1989749
stef_dober​mann
Personne n'est parfait ...
Posté le 03-05-2010 à 13:54:59  profilanswer
 

art_dupond a écrit :


Si c'est comme vous dites, je dirais "select concat(n1,',',n2,','...)"


 
Oui si c'est valeur sont dans la même occurrence, si c'est des valeurs sur plusieurs occurrences non
Ça serais bien qu'il se manifeste fireman243 pour nous dire ce qu'il veux ou peut-être a-t-ilo déjà trouvé


Message édité par stef_dobermann le 03-05-2010 à 13:56:30

---------------
Tout à commencé par un rêve...
n°1990348
fireman243
attentif et tjrs vif!
Posté le 05-05-2010 à 09:00:25  profilanswer
 

salut à tous en stage en ce moment pas de connexion internet merci pour vos précieux coups de main je regarde et vous tiens informé , objectif j'ai rentré ces valeurs ds ma table 2338 2410 2535 .  
 
je veux les réutiliser ds un select pour afficher sur une ligne toutes les dispos de chaque agent du type :  
 
2338    le 24  dispo en jour  
2338    le 16   dispo en nuit  
2410    le 15 dispo en 24h  
2535    le  3 dispo en nuit  
 
ensuite réaliser un tableau de ce type avec un résultat par ligne avec un regroupement par matricule
         1     2     3     4      5  
2338   jour        nuit  
2410         jour         24 h  
2535              jour  
 
de ce fait j'ai fait un  
 
select matricule from tbl_user order by matricule ;
 
je fais un echo sur cette requete pour verifier mon résultat j'obtiens 233824102535
 
Seulement pour afficher les dispos en ligne de chaque agent je dois faire  
Select * from dispos where matricule in 2338,2410,2535 ;
 
comme cela ça fonctionne biensur  
 
Sauf que je veux intégrer une variable après le in pour intégrer la liste de s matricules comme cela je n'ai pas besoin de tous les saisir.  
 
ce qui donnerait select * from dispo where matricule in $listematricule ;  
 
 
merci    
 

n°1990359
fireman243
attentif et tjrs vif!
Posté le 05-05-2010 à 09:41:49  profilanswer
 

salut stefdoberman  
 
ton script fonctionne trés bien j'obtiens bien le résultat sous la forme que je veux mais comment alors intégrer sous forme d e variable ton  
 
echo implode ???  car le resultat qu'il me ressort est excatement ce que je veux sous forme d evariable
merci

n°1990419
stef_dober​mann
Personne n'est parfait ...
Posté le 05-05-2010 à 12:33:51  profilanswer
 

Code :
  1. $result = mysql_query("SELECT * FROM matricule" );
  2. $resultat = array();
  3. while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
  4.     $resultat[] = $row['matricule'];
  5. }
  6. $result = mysql_query("Select * from dispos where matricule in ". implode(",",$resultat));


et tu continu ton script comme tu l'entend ;)
ou sinon

Code :
  1. $liste_matricule = implode(",",$resultat);


pour l'utiliser plus loin.
ensuite tu peut aussi utiliser des fonctions..

Code :
  1. fonction liste_matricule () {
  2. $result = mysql_query("SELECT * FROM matricule" );
  3. $resultat = array();
  4. while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
  5.     $resultat[] = $row['matricule'];
  6. }
  7. return  implode(",",$resultat);
  8. }


 
que tu utilise comme suit par exemple :

Code :
  1. $result = mysql_query("Select * from dispos where matricule in ".liste_matricule () );


attention i faut prendre soin de vérifier qu'il y ai des matricules, sinon la deuxième requête génère une erreur.


Message édité par stef_dobermann le 05-05-2010 à 12:52:31

---------------
Tout à commencé par un rêve...
mood
Publicité
Posté le 05-05-2010 à 12:33:51  profilanswer
 

n°1990651
fireman243
attentif et tjrs vif!
Posté le 05-05-2010 à 23:56:30  profilanswer
 

Que dire c'est clair c'est net j'i tout compris y ' a plus qu'a tester mtn  
 
merci vraiment grand merci à toi et au forum !!

n°1990798
stef_dober​mann
Personne n'est parfait ...
Posté le 06-05-2010 à 11:23:11  profilanswer
 

de rien :jap:


---------------
Tout à commencé par un rêve...

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  avoir des virgules dans un resultat SQL

 

Sujets relatifs
[SGBD/SQL] Alternative à duplication de lignes par non-equijoin?Novice en SQL
CSV to SQL : LOAD DATA INFILE[Résolu] Pertinence. MATCH/AGAINST
erreur éxécution 2465, impossible de trouver le champ résultat.Comment afficher le resultat d'un recordSet
[SQL Server Express] Connexion distante à SQL Server ExpressPb d'insertion de données SQL
Executer fonction oracle et récupérer résultat depuis perl (DBI)[Proc Stock] comment récupérer le résultat d'une requête ?
Plus de sujets relatifs à : avoir des virgules dans un resultat SQL


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR