Bash mysql fonction afficher les données de la bd
Résolu
xunil2003
Messages postés
765
Date d'inscription
Statut
Membre
Dernière intervention
-
xunil2003 Messages postés 765 Date d'inscription Statut Membre Dernière intervention -
xunil2003 Messages postés 765 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je voudrai afficher les nons des fichier inscrit dans ma basse de donnée mysql avec une fonction.
Afin de pouvoir les exécuter un par un.
Mais je n'y arrive pas ?
Il m'affiche :
la ligne 163 est : }
Et avec ceci ça marche :
il m'affiche
Pourquoi je n'arrive pas afficher les noms des fichiers inscrit dans la bd avec une fonction ?
Merci
Je voudrai afficher les nons des fichier inscrit dans ma basse de donnée mysql avec une fonction.
Afin de pouvoir les exécuter un par un.
Mais je n'y arrive pas ?
#!/bin/bash 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 } echo $(sql30)
Il m'affiche :
serveur@debian:~$ /home/serveur/Domotique/ordres/mochad/lumieres-all-a-off /home/serveur/Domotique/ordres/mochad/lumieres-all-a-off: line 163: Erreur de syntaxe près du symbole inattendu « } » /home/serveur/Domotique/ordres/mochad/lumieres-all-a-off: line 163: ' }' serveur@debian:~$
la ligne 163 est : }
Et avec ceci ça marche :
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'" while read $select_noms_colonnes3_1
il m'affiche
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
Pourquoi je n'arrive pas afficher les noms des fichiers inscrit dans la bd avec une fonction ?
Merci
A voir également:
- Bash mysql fonction afficher les données de la bd
- Fuite données maif - Guide
- Fonction si et - Guide
- Supprimer les données de navigation - Guide
- Trier des données excel - Guide
- Afficher mot de passe wifi android - Guide
4 réponses
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
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.
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)
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.