Bash mysql fonction afficher les données de la bd
Résolu/Fermé
xunil2003
Messages postés
745
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
24 janvier 2023
-
Modifié par xunil2003 le 7/01/2013 à 00:58
xunil2003 Messages postés 745 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 24 janvier 2023 - 7 janv. 2013 à 09:40
xunil2003 Messages postés 745 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 24 janvier 2023 - 7 janv. 2013 à 09:40
A voir également:
- Bash mysql fonction afficher les données de la bd
- Bash arguments - Astuces et Solutions
- Scan bd ✓ - Forum Loisirs / Divertissements
- List bash ✓ - Forum Shell
- Bash do while ✓ - Forum Shell
- Le fichier contient un programme écrit en python. le programme construit un mot secret mais il ne l'affiche pas. modifiez ce programme afin que à chaque itération de la boucle : la variable a augmente de 2 la variable b diminue de 1 ajoutez une instruction pour faire afficher le mot secret construit. quel est ce mot secret ? ✓ - Forum Python
4 réponses
mamiemando
Messages postés
32079
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
30 janvier 2023
7 536
Modifié par mamiemando le 7/01/2013 à 01:04
Modifié par mamiemando le 7/01/2013 à 01:04
Merci de soigner l'orthographe.
Je n'ai pas compris l'intérêt de la bouche while.
Accessoirement je ne pense pas que le shell soit un langage très adapté pour manipuler une base de donnée, à mon avis ce serait plus simple avec... je sais pas presque n'importe quoi d'autre que du shell :-) du python, du php, du java, du c++, n'importe quoi qui offre un binding réel avec mysql. Enfin bon, pourquoi pas.
En l'état, difficile de débugger ton script, car on ne sait pas comment sont initialisées tes variables shell, le schéma de la base etc... À ta place, je commencerais par afficher la valeur de chaque variable shell pour vérifier qu'elles ont toutes la valeur que tu crois, car ton erreur vient sans doute d'une variable qui n'est pas initialisée.
Ah et sinon la syntaxe de la boucle while me paraît bizarre, elle est peut être juste, mais il ne faut pas un "\" à la fin de ta ligne mysql ?
Bonne chance
Je n'ai pas compris l'intérêt de la bouche while.
Accessoirement je ne pense pas que le shell soit un langage très adapté pour manipuler une base de donnée, à mon avis ce serait plus simple avec... je sais pas presque n'importe quoi d'autre que du shell :-) du python, du php, du java, du c++, n'importe quoi qui offre un binding réel avec mysql. Enfin bon, pourquoi pas.
En l'état, difficile de débugger ton script, car on ne sait pas comment sont initialisées tes variables shell, le schéma de la base etc... À ta place, je commencerais par afficher la valeur de chaque variable shell pour vérifier qu'elles ont toutes la valeur que tu crois, car ton erreur vient sans doute d'une variable qui n'est pas initialisée.
Ah et sinon la syntaxe de la boucle while me paraît bizarre, elle est peut être juste, mais il ne faut pas un "\" à la fin de ta ligne mysql ?
Bonne chance
xunil2003
Messages postés
745
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
24 janvier 2023
14
Modifié par xunil2003 le 7/01/2013 à 09:13
Modifié par xunil2003 le 7/01/2013 à 09:13
Bonjour,
Je suis obligé dit réaliser en bash afin que le terminal exécute les fichiers ??
il m'affiche :
Il s'arrête au deuxième fichier car le chemin est absent alors qu'il est présent au premier ?
et quand je mets un "echo" devant ma requête
j'ai ceci qui s'affiche
au lieu de faire
Comment puis je faire ?
Merci.
Je suis obligé dit réaliser en bash afin que le terminal exécute les fichiers ??
#!/bin/bash $prog="aplay" $chemin$="/home/serveur/Domotique/x10/son-confirmation/wav/" sql30(){ mysql -h "$hote_db" -D "$nom_bd" -u "$login_db" -p"$pass_bd" \ --default-character-set=$format_texte -B -N -e "SELECT $select_noms_colonnes3_1 FROM $nom_table3 WHERE cm='$code_maison'" #while read $select_noms_colonnes3_1 } $prog $chemin$(sql30)
il m'affiche :
Playing WAVE '/home/serveur/Domotique/x10/son-confirmation/wav/lumiere-plafond-chambre-parent-off.wav' : Signed 16 bit Little Endian, Rate 16000 Hz, Mono Lumiere-lit-nathalie-chambre-parent-off.wav: Aucun fichier ou dossier de ce type
Il s'arrête au deuxième fichier car le chemin est absent alors qu'il est présent au premier ?
et quand je mets un "echo" devant ma requête
echo $prog $chemin$(sql30)
j'ai ceci qui s'affiche
aplay /home/serveur/Domotique/x10/son-confirmation/wav/lumiere-plafond-chambre-parent-off.wav Lumiere-lit-nathalie-chambre-parent-off.wav Lumiere-lit-laurent-chambre-parent-off.wav ensemble-TV-chambre-parent-off.wav lumiere-chambre-loic-off.wav lumiere-bureau-chambre-loic-off.wav ensemble-TV-chambre-loic-off.wav Lumiere-couloir-1er-etage-off.wav
au lieu de faire
aplay /home/serveur/Domotique/x10/son-confirmation/wav/lumiere-plafond-chambre-parent-off.wav aplay /home/serveur/Domotique/x10/son-confirmation/wav/Lumiere-lit-nathalie-chambre-parent-off.wav aplay /home/serveur/Domotique/x10/son-confirmation/wav/Lumiere-lit-laurent-chambre-parent-off.wav aplay /home/serveur/Domotique/x10/son-confirmation/wav/chambre-parent-off.wav aplay /home/serveur/Domotique/x10/son-confirmation/wav/ensemble-TV-chambre-parent-off.wav aplay /home/serveur/Domotique/x10/son-confirmation/wav/lumiere-chambre-loic-off.wav aplay /home/serveur/Domotique/x10/son-confirmation/wav/lumiere-bureau-chambre-loic-off.wav aplay /home/serveur/Domotique/x10/son-confirmation/wav/ensemble-TV-chambre-loic-off.wavpour être exécuté par bash.
Comment puis je faire ?
Merci.
zipe31
Messages postés
36317
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 557
7 janv. 2013 à 09:12
7 janv. 2013 à 09:12
Salut,
Si tu nous expliquais ce que tu veux exactement faire, peut être pourrions-nous t'aider ;-\
C'est quoi ça "$prog $chemin$(sql30)" ? Du moins c'est censé faire quoi ?
Une fonction n'est pas une variable !
Cette syntaxe "$(sql30)" ne correspond à rien ;-(
Si le but c'est de lire chaque ligne que retourne ton interrogation de ta base de données, la syntaxe serait plutôt :
Si tu nous expliquais ce que tu veux exactement faire, peut être pourrions-nous t'aider ;-\
C'est quoi ça "$prog $chemin$(sql30)" ? Du moins c'est censé faire quoi ?
Une fonction n'est pas une variable !
Cette syntaxe "$(sql30)" ne correspond à rien ;-(
Si le but c'est de lire chaque ligne que retourne ton interrogation de ta base de données, la syntaxe serait plutôt :
while read line do ${prog} ${chemin}${line} done < <(mysql blabla blabla)
xunil2003
Messages postés
745
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
24 janvier 2023
14
7 janv. 2013 à 09:40
7 janv. 2013 à 09:40
Bonjour,
Ok ça marche impec
résultat :
Merci.
Ok ça marche impec
while read line do $(sql4) $(sql5)${line} done < <(mysql -h $hote_db -D $nom_bd -u "$login_db" -p"$pass_bd" -B -N -e "SELECT $select_noms_colonnes3_1 FROM $nom_table3 WHERE cm='$code_maison'" | grep .wav)
résultat :
Playing WAVE '/home/serveur/Domotique/x10/son-confirmation/wav/lumiere-plafond-chambre-parent-off.wav' : Signed 16 bit Little Endian, Rate 16000 Hz, Mono Playing WAVE '/home/serveur/Domotique/x10/son-confirmation/wav/Lumiere-lit-nathalie-chambre-parent-off.wav' : Signed 16 bit Little Endian, Rate 16000 Hz, Mono Playing WAVE '/home/serveur/Domotique/x10/son-confirmation/wav/Lumiere-lit-laurent-chambre-parent-off.wav' : Signed 16 bit Little Endian, Rate 16000 Hz, Mono Playing WAVE '/home/serveur/Domotique/x10/son-confirmation/wav/ensemble-TV-chambre-parent-off.wav' : Signed 16 bit Little Endian, Rate 16000 Hz, Mono Playing WAVE '/home/serveur/Domotique/x10/son-confirmation/wav/lumiere-chambre-loic-off.wav' : Signed 16 bit Little Endian, Rate 16000 Hz, Mono Playing WAVE '/home/serveur/Domotique/x10/son-confirmation/wav/lumiere-bureau-chambre-loic-off.wav' : Signed 16 bit Little Endian, Rate 16000 Hz, Mono Playing WAVE '/home/serveur/Domotique/x10/son-confirmation/wav/ensemble-TV-chambre-loic-off.wav' : Signed 16 bit Little Endian, Rate 16000 Hz, Mono Playing WAVE '/home/serveur/Domotique/x10/son-confirmation/wav/Lumiere-couloir-1er-etage-off.wav' : Signed 16 bit Little Endian, Rate 16000 Hz, Mono
Merci.