Requete mysql mal formulé

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,

Dans un script bash je voudrai interroger la basse de données, seulement je ne trouve pas comment formuler la requete ?

code bash (Linux)
nom_table4="modules_x10"    
colonne_recherche4="type"    
recherche4="L"    
select_noms_colonnes4_1="code_maison_unite"    


sql9(){    
mysql -h "$hote_db" -D "$nom_bd" -u "$login_db" -p"$pass_bd" \    
  --default-character-set=$format_texte -B -N -e "SELECT $select_noms_colonnes4_1 FROM $nom_table4 WHERE $colonne_recherche4 LIKE '$recherche4%'"     
        }    

echo $(sql9)


Il m'affiche comme résultat

serveur@debian:~$ e-lall-on    
B1 B2 C1 E1 E9     
serveur@debian:~$


ors il me faut uniquement le résultat avec le "code_maison_unite" E1 E9, il faudrait qu'il m'affiche le résultat comme ceci,
E1 E9


De fàçon a ce qu'il puisse m'afficher
tout ce qu'il trouve qui commence par la lettre "L" dans "type" en m'affichant le résultat de "code_maison_unite" de "E" uniquement, ors il m'affiche toute la basse y compris les autres lettres B1, B2, C1

Bd
+----+-------------------------------------+-------------------+------+
| id | nom_module | code_maison_unite | type |
+----+-------------------------------------+-------------------+------+
| 17 | Lumière du salon | B1 | LD11 |
| 18 | Lumière cheminé | B2 | LM12 |
| 33 | Lumière chambre | C1 | LD11 |
| 65 | Lumière bureau | E1 | LD11 |
| 73 | Lumière salle de sport | E9 | LD11 |
+----+-------------------------------------+-------------------++------+


Je n'arrive pas a formuler la requete ?
Pouvez-vous m'aider ?
Merci.

A voir également:

27 réponses

arth Messages postés 9374 Date d'inscription   Statut Contributeur Dernière intervention   1 293
 
Dans ce cas essayez ainsi :

sql06="SELECT $select_noms_colonnes1_2 FROM $nom_table1 WHERE id LIKE '" $lignes3%"'"

Et rajouter en dessous :

echo "Requete a executer : "$sql06

Voir quelle requête sera exécutée.

Le loup, solitaire et mystérieux.
0
xunil2003 Messages postés 765 Date d'inscription   Statut Membre Dernière intervention   14
 
bonsoir,

J'ai fait ceci :
echo "------ test  6 -----"
sql06="SELECT $select_noms_colonnes1_2 FROM $nom_table1 WHERE id LIKE '" $lignes3%"'" 
Requete a executer = $sql06

mysql -u $login_db -D $nom_bd -h $hote_db -p$pass_bd  --default-character-set=$format_texte  -e "$sql06" | sed '1d' | while read lignes6; do 
echo "resultat test 6 : $lignes6"
done
echo "------ Fin test 6 -----"
echo ""
echo "resultat sql06 : $sql06"


Il me repond :
------ test  6 -----
/home/serveur/Domotique/ordres/e-lall-on: line 254: fg: pas de contrôle de tâche
/home/serveur/Domotique/ordres/e-lall-on: line 255: Requete : commande introuvable
------ Fin test 6 -----


Ligne 254 :

sql06="SELECT $select_noms_colonnes1_2 FROM $nom_table1 WHERE id LIKE '" $lignes3%"'" 


Ligne 255 :

Requete a executer = $sql06


Merci.
0
arth Messages postés 9374 Date d'inscription   Statut Contributeur Dernière intervention   1 293
 
J'ai modifié mon post, effectivement c'était pas bon ;-)

A force de maniper sur plusieurs langages, on se perd :-)
0
xunil2003 Messages postés 765 Date d'inscription   Statut Membre Dernière intervention   14
 
Bonsoir

A force de maniper sur plusieurs langages, on se perd "oui moi aussi"

Avec ceci :

sql06="SELECT $select_noms_colonnes1_2 FROM $nom_table1 WHERE id LIKE '" $lignes3"'"
Requete a executer = $sql06
mysql -u $login_db -D $nom_bd -h $hote_db -p$pass_bd --default-character-set=$format_texte -e "$sql06" | sed '1d' | while read lignes6; do

echo "resultat test 6 : $lignes6"
done
echo "------ Fin test 6 -----"
echo ""
echo "resultat requête sql06 : $sql06"

il m'affiche
/home/serveur/Domotique/ordres/e-lall-on: line 255: ' : commande introuvable
/home/serveur/Domotique/ordres/e-lall-on: line 256: Requete : commande introuvable


Ligne 255
sql06="SELECT $select_noms_colonnes1_2 FROM $nom_table1 WHERE id LIKE '" $lignes3"'" 


Ligne 256
Requete a executer = $sql06



Merci.
0
arth Messages postés 9374 Date d'inscription   Statut Contributeur Dernière intervention   1 293
 
Je répète : j'ai modifié mon post précédent ;-)

Il faut mettre :

sql06="SELECT $select_noms_colonnes1_2 FROM $nom_table1 WHERE id LIKE '" $lignes3"'"

echo "Requete a executer : " $sql06
0
xunil2003 Messages postés 765 Date d'inscription   Statut Membre Dernière intervention   14
 
Bonsoir,


J'ai sais que vous avez modifié votre post précédent, mais voila le résultat après modification de votre post précédent.

j'ai mis :
sql06="SELECT $select_noms_colonnes1_2 FROM $nom_table1 WHERE id LIKE '" $lignes3"'"   
echo "Requete a executer : " $sql06


bash répond
/home/serveur/Domotique/ordres/e-lall-on: line 257: ' : commande introuvable   
Requete a executer : 


ligne 257
sql06="SELECT $select_noms_colonnes1_2 FROM $nom_table1 WHERE id LIKE '" $lignes3"'"


Merci.
0
arth Messages postés 9374 Date d'inscription   Statut Contributeur Dernière intervention   1 293
 
Dans ce cas essayez :

sql06="SELECT $select_noms_colonnes1_2 FROM $nom_table1 WHERE id LIKE \'" $lignes3"\'"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
xunil2003 Messages postés 765 Date d'inscription   Statut Membre Dernière intervention   14
 
bonsoir,

ben alors,
j'ai mis ce que vous m'avez dit

sql06="SELECT $select_noms_colonnes1_2 FROM $nom_table1 WHERE id LIKE \'" $lignes3"\'"
echo "Requete a executer : " $sql06


et bash répond
/home/serveur/Domotique/ordres/e-lall-on: line 257: \' : commande introuvable
Requete a executer : 


La ligne 257 est :
sql06="SELECT $select_noms_colonnes1_2 FROM $nom_table1 WHERE id LIKE \'" $lignes3"\'"

Merci.
0
arth Messages postés 9374 Date d'inscription   Statut Contributeur Dernière intervention   1 293
 
Alors dans ce cas :

sql06="SELECT $select_noms_colonnes1_2 FROM $nom_table1 WHERE id LIKE \'$lignes3%\' "
0
xunil2003 Messages postés 765 Date d'inscription   Statut Membre Dernière intervention   14
 
Bonsoir,

j'ai mis
sql06="SELECT $select_noms_colonnes1_2 FROM $nom_table1 WHERE id LIKE \'$lignes3%\' "
echo "Requete a executer : " $sql06


Rien ne s'affiche

Bash m'affiche
Requete a executer :  SELECT fichier_cm_lumiere_all_On FROM bash WHERE id LIKE \'%\'
ERROR at line 1: Unknown command '\''.


La variable $ligne3 ne s'affiche pas dans le retour de la requête.
Merci.
0
xunil2003 Messages postés 765 Date d'inscription   Statut Membre Dernière intervention   14
 
Bonjour

Avec la requête formulé comme ceci :
sql06="SELECT $select_noms_colonnes1_2 FROM $nom_table1 WHERE id='$lignes3'"


bash m'affiche
/home/serveur/Domotique/ordres/e-lall-on: line 260: Erreur de syntaxe près du symbole inattendu « done »
/home/serveur/Domotique/ordres/e-lall-on: line 260: 'done'

La ligne 260 est
done


code bash
sql06="SELECT $select_noms_colonnes1_2 FROM $nom_table1 WHERE id='$lignes3'" 
mysql -u $login_db -D $nom_bd -h $hote_db -p$pass_bd  --default-character-set=$format_texte  -e "$sql06" | sed '1d' | while read lignes6; do  
done 
echo "" 
echo "Requête sql06 :" $sql06


Merci.
0