Bash mysql fonction afficher les données de la bd
Résolu/Fermé
xunil2003
Messages postés
766
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
29 septembre 2024
-
Modifié par xunil2003 le 7/01/2013 à 00:58
xunil2003 Messages postés 766 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2024 - 7 janv. 2013 à 09:40
xunil2003 Messages postés 766 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2024 - 7 janv. 2013 à 09:40
A voir également:
- Bash mysql fonction afficher les données de la bd
- Fonction si et - Guide
- Effacer les données de navigation - Guide
- Afficher mot de passe wifi android - Guide
- Reinstaller windows sans perte de données - Guide
- Comment sauvegarder toutes les données de mon téléphone - Guide
4 réponses
mamiemando
Messages postés
33446
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 décembre 2024
7 811
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
766
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
29 septembre 2024
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
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
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
766
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
29 septembre 2024
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.