Forum >> Programmazione Python >> Database >> eseguire una sola volta il ciclo

Pagina: 1

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


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
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




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.