Passare una variabile a una query sql

Per problemi di ogni sorta su mysql

Moderatori: rizla_, roberto, michele.p, FiNeX

Re: Passare una variabile a una query sql

Messaggioda peppepegasus » mar mag 26, 2009 1:41 pm

Ho un altro piccolo problema..ho bisogno di far variare insieme alla dir letta il numero della componente di un array..come posso fare?
Ho usato un ciclo for più esterno ma è ovvio che non va..ecco il codice che ho usato e che non va bene:

# Definizione del vettore dei nomi tabella

declare -a nomi_tab=(tab_database Dig_File files_tfc MT_file Profili Tabelle)

OLDIFS=$IFS
IFS=$(echo -en "\n\b")
for indice in 0 1 2 3 4 5
do echo "nome tabella letto" ${nomi_tab[indice]}
for my_dir in `ls -1`;
do echo "nome dir letto" $my_dir
echo "nome tabella letto" ${nomi_tab[indice]}
if [ -d "$my_dir" ]
then
cd $my_dir
if [ $my_dir = "Dig File" ]
then echo "digfile dir"
else
for my_file in `ls -1`;
do
.......

come posso fare?
grazie.
ciao.
peppepegasus
Principiante
Principiante
 
Messaggi: 10
Iscritto il: mer mag 20, 2009 2:20 pm

Re: Passare una variabile a una query sql

Messaggioda redmarx » mar mag 26, 2009 2:11 pm

Sicuro che non sia meglio fare questo lavoro con un altro linguaggio di scripting? Magari python o perl?
Comunque se devi far variare un indice in una sequenza magari ti farebbe comodo avere un array associativo: http://linuxshellaccount.blogspot.com/2 ... -bash.html
redmarx
Guru
Guru
 
Messaggi: 609
Iscritto il: sab set 15, 2007 11:45 am
Località: Manoppello

Re: Passare una variabile a una query sql

Messaggioda peppepegasus » mar mag 26, 2009 2:39 pm

Ci ho capito ben poco..ma possibile che per fare un qualcosa del tipo:
la dir si chiama pinco..devi usare la tabella pippo, la dir si chiama pallina la tabella da usare si chiama paperino etc.
sai così complicato in bash? purtroppo ho deciso di farlo in bash e devo terminarlo domani!!
uff..
grazie.
ciao.
peppepegasus
Principiante
Principiante
 
Messaggi: 10
Iscritto il: mer mag 20, 2009 2:20 pm

Re: Passare una variabile a una query sql

Messaggioda redmarx » mar mag 26, 2009 6:58 pm

peppepegasus ha scritto:la dir si chiama pinco..devi usare la tabella pippo, la dir si chiama pallina la tabella da usare si chiama paperino etc.

Appunto, ti serve un array associativo: http://it.wikipedia.org/wiki/Array_associativo.
In pratica ti serve un struttura dati, chiamiamola "mappa", in cui memorizzare i nomi delle directory e far corrispondere loro i nomi delle tabelle:
Codice: Seleziona tutto
mappa[pinco]="pippo"
mappa[pallina]="paperino"
...

La bash non ha nativamente il supporto a questo tipo di struttura dati e quindi la devi simulare seguendo le istruzioni al link che ti ho dato nel post precedente.
Purtroppo non conosco una via più semplice per farlo. Sarebbe stato meglio in un altro linguaggio.
redmarx
Guru
Guru
 
Messaggi: 609
Iscritto il: sab set 15, 2007 11:45 am
Località: Manoppello

Precedente

Torna a Mysql

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite