Lister le contenu d'une table mysql dans un menu zenity

Fermé
xunil2003 Messages postés 766 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2024 - Modifié par mamiemando le 26/06/2013 à 10:18
mamiemando Messages postés 33357 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 13 novembre 2024 - 26 juin 2013 à 10:23
Bonjour,

Tout est dans le titre, mais bon, peut être que je dis une bêtise,est-ce possible ?
Un truc du genre

   hote_db="localhost"
nom_bd="mabd"
login_db="root"
pass_bd="xxxxxx"

format_texte="utf8"
select_noms_colonnes1="code_maison_unite"
select_noms_colonnes2="nom_module"
nom_table="modules_x10"
colonne_recherche="code_maison"
recherche="E"

sql1='mysql -h "$hote_db" -D "$nom_bd" -u "$login_db" -p"$pass_bd" \
   --default-character-set=$format_texte -e "SELECT $select_noms_colonnes1 FROM $nom_table WHERE $colonne_recherche LIKE '$recherche%'" '

sql2='mysql -h "$hote_db" -D "$nom_bd" -u "$login_db" -p"$pass_bd" \
   --default-character-set=$format_texte -e "SELECT $select_noms_colonnes2 FROM $nom_table WHERE $colonne_recherche LIKE '$recherche%'" '
   
CHOIX='zenity --list \
        --title="La domotique x10 avec Mochad" \
        --width=300 --height=400 \
        --column="CMU" --column="Détail module" \
                "$sql1" \
                "$sql2" '


echo $CHOIX


Mais je n'arrive pas à faire sélectionner une ligne de la liste du menu ? Tout est sélectionné automatiquement dès que j'essaye d'en sélectionner un dans la liste du menu ?

Au début de la liste du menu s'afficher "code_maison_unite" ors il s'agit du contenu d'une variable déclaré dans mon code ???

"echo $CHOIX" m'affiche dans le terminal
code_maison_unite E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 E11 E12 E13 E14 E15 E16
alors que je devrai pouvoir en sélectionner un seul ?

Merci.

1 réponse

mamiemando Messages postés 33357 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 13 novembre 2024 7 805
26 juin 2013 à 10:23
A première vue je dirais que le problème est que tu n'exécutes jamais tes commandes sql.

res1=$($sql1)
echo $res1


Tu peux aussi utiliser l'instruction eval.

Ensuite il faut concaténer les résultats de $res1 et $res2 proprement avant de les mettre dans ton menu (par exemple dans $res). Je pense que dans un premier temps tu devrais essayer de faire marcher ton script juste en shell avec des variables et sans te préocupper de zenity. Une fois que tu seras parvenu à générer le bon contenu dans ta variable $res, tu pourras l'intégrer dans ta commande zenity...

Bonne chance
0