[bash] Recuperer des données d'une base MYSQL

Recuperer des données d'une base MYSQL [bash] - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 22-12-2008 à 16:58:48    

Bonjour,
 
Je développe actuellement un petit script de lecture dans les bases de données.
 
Mon code actuel permet la lecture dans une BDD puis la mise en place dans un tableau :

Code :
  1. #Requete pour recuperer les noms de major
  2. temp=`mysql -h $host -D $db -B -N -e "SELECT nom FROM identite"`
  3. tableau_film=($temp)


 
Cependant, je me confronte à deux problèmes, que je n'arrive pas à contourner.
 
1 Lors de la mise en place dans un tableau, la seule solution trouvée a été de couper en utilisant "l'espace" comme caractère de séparation.
Ceci pose mon premier probleme car il découpe par exemple des noms composés
Ex : Jean Jacques
      tab[0] = Jean
      tab[1] = Jacques
Alors que je voudrais
      tab[0] = Jean Jacques
 
2 Mon second probleme est de récuperer deux champs dans deux tableaux differents

Code :
  1. #Requete pour recuperer les noms de major
  2. temp=`mysql -h $host -D $db -B -N -e "SELECT nom,prenom FROM identite"`
  3. tableau_film=($temp)


 
Exemple : récupération du nom et du prénom
 
 
Puis j'aimerais avoir :
nom[0] = Martin / nom[1] = Dupond
Prenom[0] = Anthony / Prénom[1] = Carine
 
Merci encore de votre aide!


Message édité par johnson950 le 22-12-2008 à 16:59:53
Reply

Marsh Posté le 22-12-2008 à 16:58:48   

Reply

Marsh Posté le 23-12-2008 à 15:00:58    

Je ne pense pas que bash soit un très bon choix pour faire ça.
Regarde du coté de Python ou de Perl, qui disposent de modules permettant de travailler proprement avec les bases de données.


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
Reply

Marsh Posté le 23-12-2008 à 15:05:07    

ou en ruby :o


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 23-12-2008 à 15:07:05    

Non, pas en ruby [:-lilith-]


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
Reply

Marsh Posté le 23-12-2008 à 15:12:28    

Code :
  1. SELECT a,b,a+b INTO OUTFILE '/tmp/result.text'
  2. FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
  3. LINES TERMINATED BY '\n'
  4. FROM test_table;


commence par séparé tes champs par un ; ==> csv
puis tu cut/parses/sed les espaces du champs nom-prémon


---------------
ma conduite intérieure .:R | memaster pilote officiel de la HFR Badoit-Auchan F1 Team | zéro tracas, zéro blabla MMa.ster
Reply

Marsh Posté le 23-12-2008 à 15:13:29    

si :o
 
http://mollacademy.gcu.info/doku.p [...] on_db_base


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 23-12-2008 à 16:25:03    

e_esprit a écrit :

Non, pas en ruby [:-lilith-]


 
Et pourquoi donc ? :o
La gem MySQL permet de faire tout ce dont on peut avoir besoin hein :o


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 23-12-2008 à 17:30:54    

Merci pour vos réponses,
 
Cependant :
 
Comment fait on pour séparer mes champs par un ";" ?
Dans un script bash peut on inclure du php ?
 
Merci de votre aide

Reply

Marsh Posté le 23-12-2008 à 17:31:58    

johnson950 a écrit :

Merci pour vos réponses,
 
Cependant :
 
Comment fait on pour séparer mes champs par un ";" ?
Dans un script bash peut on inclure du php ?
 
Merci de votre aide


regarde la requete que je t'ai donné tu peux choisir [:kabale]


---------------
ma conduite intérieure .:R | memaster pilote officiel de la HFR Badoit-Auchan F1 Team | zéro tracas, zéro blabla MMa.ster
Reply

Marsh Posté le 23-12-2008 à 17:33:09    

Non mais attend faut arrêter ..
Déjà le Bash c'est mort comme langage, alors en plus appeler des bouts de PHP là dedans, c'est vraiment n'importe quoi.
Opte pour un langage serieux (Ruby ou Python par exemple te permettront de faire ce que tu veux rapidement) et arrête de te compliquer la vie


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 23-12-2008 à 17:33:09   

Reply

Marsh Posté le 23-12-2008 à 17:35:26    

Cela dit PHP peut très bien être utilisé en scripting, si il connait deja la syntaxe, ce sera toujours mieux que du shell pour faire ce qu'il souhaite :o


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
Reply

Marsh Posté le 23-12-2008 à 17:37:53    

esox_ch a écrit :

Non mais attend faut arrêter ..
Déjà le Bash c'est mort comme langage, alors en plus appeler des bouts de PHP là dedans, c'est vraiment n'importe quoi.
Opte pour un langage serieux (Ruby ou Python par exemple te permettront de faire ce que tu veux rapidement) et arrête de te compliquer la vie


c'est juste un langage d'admin employé sur de très (très) nombreuses machines. :o  


---------------
ma conduite intérieure .:R | memaster pilote officiel de la HFR Badoit-Auchan F1 Team | zéro tracas, zéro blabla MMa.ster
Reply

Marsh Posté le 23-12-2008 à 17:38:50    

memaster a écrit :


c'est juste un langage d'admin employé sur de très (très) nombreuses machines. :o  


Oui mais personne ne fait de gros traitement avec, c'est suicidaire :o
 
Bon, sauf Wedge, mais c'est pas pareil, il est différent :D


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
Reply

Marsh Posté le 23-12-2008 à 17:49:13    

e_esprit a écrit :


Oui mais personne ne fait de gros traitement avec, c'est suicidaire :o
 
Bon, sauf Wedge, mais c'est pas pareil, il est différent :D


un admin ne fait jamais de gros traitement (enfin pas en bash en tout cas), donc on est d'accord. :jap:  
mais de la à dire que c'est un "langage" poubelle [:kc] , c'est qd même la dedans que l'on apprend/traite
de l'expression régulière le plus efficacement du monde.


---------------
ma conduite intérieure .:R | memaster pilote officiel de la HFR Badoit-Auchan F1 Team | zéro tracas, zéro blabla MMa.ster
Reply

Marsh Posté le 23-12-2008 à 17:50:03    

memaster a écrit :


c'est juste un langage d'admin employé sur de très (très) nombreuses machines. :o  


 
Tout comme Cobol est utilisé sur une grande partie du parc mainframe, et Fortran est toujours abondamment utilisé dans la recherche scientifique.
C'est pas pour autant qu'il faut resortir tes cartes perforées si on te demande de faire qqch que Matlab te pondrait en 2 sec :o


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 23-12-2008 à 18:01:10    

esox_ch a écrit :


 
Tout comme Cobol est utilisé sur une grande partie du parc mainframe, et Fortran est toujours abondamment utilisé dans la recherche scientifique.
C'est pas pour autant qu'il faut resortir tes cartes perforées si on te demande de faire qqch que Matlab te pondrait en 2 sec :o


si le (ba)sh était mauvais linus l'aurait qd même évincé depuis le temps. :sweat:  
juste remettre dans son contexte l'utilisation : à relire dans mes précédentes interventions ;)  
 
pour en revenir au pb, je pense qu'il est mieux de le traité directement au niveau de MySQL justement :hello: ,
c'est inclu dedans autant l'utiliser. [:kabale]


---------------
ma conduite intérieure .:R | memaster pilote officiel de la HFR Badoit-Auchan F1 Team | zéro tracas, zéro blabla MMa.ster
Reply

Marsh Posté le 23-12-2008 à 18:34:10    

on va revenir sur le sujet :o Le langage osef, merci :o
 
esox_ch > le bash n'est pas mort, il n'est juste pas forcemment adapté ici & maintenant  
memaster62 > le mieux est surement de grouper le traitement dans un script, parce que quand il voudra faire évoluer la chose ce sera plus confortable.


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 23-12-2008 à 19:11:53    

memaster a écrit :


un admin ne fait jamais de gros traitement (enfin pas en bash en tout cas), donc on est d'accord. :jap:  
mais de la à dire que c'est un "langage" poubelle [:kc] , c'est qd même la dedans que l'on apprend/traite
de l'expression régulière le plus efficacement du monde
.


Là je suis pas d'accord :D
 
Perl est très bon sur ce point, et Ruby a l'air encore meilleur (enfin de ce que j'ai pu survolé).


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
Reply

Marsh Posté le 23-12-2008 à 20:41:25    

e_esprit a écrit :


Là je suis pas d'accord :D
 
Perl est très bon sur ce point, et Ruby a l'air encore meilleur (enfin de ce que j'ai pu survolé).


 
+100 pour les regexps honnêtement en deça d'un certain niveau c'est kif kif...


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 05-01-2009 à 01:20:21    

Il serais plus facile de t'aider avec la sortie (modifiée ou non) de  

Code :
  1. mysql -h $host -D $db -B -N -e "SELECT nom,prenom FROM identite"

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed