Bash et resultat de requete SQL
Résolu
wally
-
wally -
wally -
Bonjour tout le monde,
je cherche à récupérer le resultat d'une requete qui me retourne plusieur ligne
voici mon script shell
j'aurai voulu que le résultat soit
champ1(valeur_champ1) - champ2(valeur_champ2)
champ1(valeur_champ1) - champ2(valeur_champ2)
champ1(valeur_champ1) - champ2(valeur_champ2)
et au lieu j'ai le resultat
quelqu'un pourrait-il m'aider svp ?
d'avance merci.
je cherche à récupérer le resultat d'une requete qui me retourne plusieur ligne
voici mon script shell
requete="connect ma_base; SELECT champ1,champ2 FROM ma_table" mysql -u root -p$rootMysqlPass -e "$requete" | while read RESULTAT do champ1=$(echo "${RESULTAT}"|awk -F\| '{ print $1 }') champ2=$(echo "${RESULTAT}"|awk -F\| '{ print $2 }') echo "champ1($champ1) - champ2($champ2)" done
j'aurai voulu que le résultat soit
champ1(valeur_champ1) - champ2(valeur_champ2)
champ1(valeur_champ1) - champ2(valeur_champ2)
champ1(valeur_champ1) - champ2(valeur_champ2)
et au lieu j'ai le resultat
champ1(champ1 champ2) - champ2() champ1(valeur_champ1 valeur_champ2) - champ2() champ1(valeur_champ1 valeur_champ2) - champ2() champ1(valeur_champ1 valeur_champ2) - champ2()
quelqu'un pourrait-il m'aider svp ?
d'avance merci.
A voir également:
- Bash sql
- Bingo bash - Télécharger - Divers Jeux
- Logiciel sql - Télécharger - Bases de données
- Blob sql ✓ - Forum Webmastering
- Bash list ✓ - Forum Shell
- Sql (+) - Forum Programmation
8 réponses
requete="connect ma_base; SELECT champ1,champ2 FROM ma_table" mysql -u root -p$rootMysqlPass -e "$requete" | sed '1d' | while read nom pnom age; do echo "$nom - $pnom - $age" done
requete="connect ma_base; SELECT champ1,champ2 FROM ma_table" mysql -u root -p$rootMysqlPass -e "$requete" | while read nom pnom age; do commande1 $nom $age $pnom commande2 $nom $pnom $age doneBien sur, le séparateur de champ étant un espace ou une tabulation et non pas un "|" auquel cas il faudrait le préciser en début de boucle...
Salut,
Affiche-nous un exemple de sortie générée par ta requête SQL, sans quoi on ne te sera d'aucun secours.
Affiche-nous un exemple de sortie générée par ta requête SQL, sans quoi on ne te sera d'aucun secours.
bonjour merci de votre réponse,
j'ai modifier en donnant un nom à champ1 etc...
et la sortie est
et j'aimerai pouvoir faire un traitement sur chaque ligne ( row ) de retour
Je sais pas si je m'exprime comme il faut
encore merci de votre aide
j'ai modifier en donnant un nom à champ1 etc...
var_dream=`mysql -u root -p$rootMysqlPass -B --exec="connect ma_base; SELECT nom,pnom,age FROM ma_table"` echo "$var_dream"
et la sortie est
nom prenom slots dupond jean 32 dumont benoit 22 pondu françois 43
et j'aimerai pouvoir faire un traitement sur chaque ligne ( row ) de retour
- boucle sur le resultat de la requête nom="valeur du champ nom" prenom="valeur du champ prenom" age="valeur du champ age" echo "$nom - $prenom - $age" - fin de la boucle
Je sais pas si je m'exprime comme il faut
encore merci de votre aide
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question[tmpfs]$ cat fich nom prenom slots dupond jean 32 dumont benoit 22 pondu françois 43 [tmpfs]$ while read nom prenom age;do echo "$nom - $prenom - $age";done < fich nom - prenom - slots dupond - jean - 32 dumont - benoit - 22 pondu - françois - 43 [tmpfs]$Mais bon si c'est juste pour rajouter un tiret entre chaque champ, il y a d'autres voies plus simple pour y arriver ;-))
merci encore de votre réponse,
je n'ai pas compris ou je devais mettre
désolé je débute
enfaite je doit utiliser les variable ainsi créer à chaque ligne pour passer des paramètre a une autre exécution
exemple :
Le trait d'union était juste pour tester, je pourrait alors utiliser les variable pour exécuter une action dans sa boucle
et à quoi correspond [tmpfs]$ ?
encore une fois merci de votre aide
je n'ai pas compris ou je devais mettre
[tmpfs]$ while read nom prenom age;do echo "$nom - $prenom - $age";done < fich nom - prenom - age dupond - jean - 32 dumont - benoit - 22 pondu - françois - 43 [tmpfs]$
désolé je débute
enfaite je doit utiliser les variable ainsi créer à chaque ligne pour passer des paramètre a une autre exécution
exemple :
- boucle sur le resultat nom="valeur nom" prenom="valeur pnom" age="valeur age" ici je lance une exécution avec comme argument mes variable commande1 nom age pnom commande2 nom pnom age - fin de la boucle
Le trait d'union était juste pour tester, je pourrait alors utiliser les variable pour exécuter une action dans sa boucle
et à quoi correspond [tmpfs]$ ?
encore une fois merci de votre aide
merci beaucoup celà fonctionne parfaitement
j'ai juste un souci c'est que il me retourne en premiere le nom des colonne
comme je l'ai dit ca marche à merveille grâce à vous et le resultat des echo est
j'ai mit en gras la ligne concerné
est-il possible d'empêcher le retour des nom de colonne dans le résultat ?
je tiens encore à vous remercie, sans votre aide j'en serait pas là
j'ai juste un souci c'est que il me retourne en premiere le nom des colonne
requete="connect ma_base; SELECT champ1,champ2 FROM ma_table" mysql -u root -p$rootMysqlPass -e "$requete" | while read nom pnom age; do echo "$nom - $pnom - $age" done
comme je l'ai dit ca marche à merveille grâce à vous et le resultat des echo est
nom - prenom - age dupond - jean - 32 dumont - benoit - 22 pondu - françois - 43
j'ai mit en gras la ligne concerné
est-il possible d'empêcher le retour des nom de colonne dans le résultat ?
je tiens encore à vous remercie, sans votre aide j'en serait pas là