Forum
>>
Programmazione Python
>>
Database
>>
eseguire una sola volta il ciclo
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
Scritto da tarta |
2016-12-21 08:27:59 - eseguire una sola volta il ciclo
|
ciao a tutti e da poco che usi python.
ho questo problema devo eseguire un ciclo solo quando la variabile assume un valore diverso da quello precedente il codice e import time import MySQLdb var = 'AAAA' db = MySQLdb.connect(host="localhost", user="root", passwd="", db="db") cursor = db.cursor() if varattuale e' diversa dalla var precedente: sql = """select valore from tab where valore LIKE '%s' """ % ("%" +var+ "%") print (%cursor.fetchone()) db.close() else non fare nulla |
|
Scritto da Daniele aka Palmux |
2016-12-21 11:39:29 - Re: eseguire una sola volta il ciclo
|
Ciao tarta, senza darti l'esatta soluzione, perché la scoperta è meravigliosa se fatta da soli, ragioniamo insieme su quanto fare:
1. Connettiti al DB; 2. Acquisisci il valore che devi controllare, confrontandolo con quello nuovo; 3. Inserisci il valore e chiudi la connessione al DB oppure chiudi la connessione e basta. Nel tuo esempio non hai fatto esattamente così, quindi rivedi logicamente quanto fatto. NOTA: Ma se devi verificare che il valore sia uguale, non dovresti usare "LIKE" ma "=". Ti aspetto vincitore. Cya |
|
Scritto da tarta |
2016-12-21 11:53:43 - Re: eseguire una sola volta il ciclo
|
ciao non ho messo tutto il codice per semplicita'
il tutto gira su raspberry e var cambia continuamente in un ciclo while true quindi il mio obiettivo e' alla prima acquisizione di var esegue la ricerca nel database e se trova corrispondenza fa qualcosa, ma solo la prima vota, mentre se il nuovo valore e' uguale al precedente non fa nulla e riprende il loop ho usato (LIKe) perche' deve ricercare var nel contenuto del valore della tabelle dammi uno spunto sto impazzendo |
|
Scritto da Daniele aka Palmux |
2016-12-21 13:35:46 - Re: eseguire una sola volta il ciclo
|
Se vuoi posta il codice per intero, così si capisce meglio di che stai parlando.
Noto e mi fanno notare dalla regia che: 1. Le credenziali del DB sono pessime; 2. La query è altamente pericolosa; 3. Se esposta su internet, RPi è un pericolo per se e gli altri; 4. Il LIKE lo usi perché hai un valore da cercare "AAAA" oppure "xxxAAAAxxx"?; 5. Il ciclo come finisce, con un'interruzione da tastiera o altro? Comunque se poi il problema è eseguire solo una volta la connessione al DB, crea una variabile fuori dal WHILE, controllala dentro il WHILE con un IF e dalle un altro valore in modo che al secondo passaggio l'IF non sia più soddisfatto. Non so quanto efficiente sia, probabilmente poco, ma senza sapere esattamente che stai facendo o cercando di fare, brancolo nel buio e sono appena andato a sbattere col l'alluce sul comodino. Cya |
Pagina: 1
Esegui il login per scrivere una risposta.