Forum
>>
Programmazione Python
>>
Database
>>
Recuperare dati di una specifica colonna
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
Scritto da malcomx |
2016-02-05 17:47:33 - Recuperare dati di una specifica colonna
|
Buongiorno, vi chiedo aiuto in merito al recupero di dati di una specifica colonna per un range di id da data base mysql.
In pratica devo recuperare da id 1 ad id 8 i dati della colonna user dal db utenti e salvarli in 8 variabili global. Sto litigando da giorni io ed il db Grazie per l'aiuto |
|
Scritto da Daniele aka Palmux |
2016-02-05 18:30:27 - Re: Recuperare dati di una specifica colonna
|
Ciao caro, facci vedere cosa hai scritto e dove sei arrivato, così correggiamo quello che non va (ricorda di formattare il testo con l'apposito pulsante "code", quello che trovi prima della tavolozza dei colori).
Dai anche qualche informazione su che versione di Python usi, su che piattaforma, etc... Cya |
|
Scritto da malcomx |
2016-02-05 20:33:28 - Re: Recuperare dati di una specifica colonna
|
dbConn = MySQLdb.connect(host,user,password,dbname)
cursor = dbConn.cursor() query = ("SELECT nome FROM users WHERE id BETWEEN %s AND %s") id_start = 1 id_end = 8 cursor.execute(query, (id_start, id_end)) rows = cursor.fetchall() for row in rows: global utente001 utente001 = row[0] global utente002 utente002 = row[0] global utente003 utente003 = row[0] global utente004 utente004 = row[0] global utente005 utente005 = row[0] global utente006 utente006 = row[0] global utente007 zona007 = row[0] global utente008 utente008 = row[0] dbConn.commit() cursor.close() So che è sbagliatissima la sintassi ma non riesco ad uscirmene.grazie Ciao |
|
Scritto da malcomx |
2016-02-05 20:34:47 - Re: Recuperare dati di una specifica colonna
|
Uso Python 2.7.11 su debian con cpu ARM
|
|
Scritto da Orsogrizzly |
2016-02-05 23:38:52 - Re: Recuperare dati di una specifica colonna
|
cursor.execute(query, (id_start, id_end))
per la modalità con qui stai inserendo le variabili da ricercare ti consiglio di andare a leggere la documentazione al link : https://docs.python.org/2/library/sqlite3.html anche se riferita a sqlite3 se non erro per mysql la sintassi per le query e la sessa che per sqlite3. Magari se poi puoi postare quale errore ti restituisce python ...... |
|
Scritto da malcomx |
2016-02-06 10:49:31 - Re: Recuperare dati di una specifica colonna
|
In pratica da un print mi stampa il valore del nome del primo utente anche per altri row0.
|
|
Scritto da Orsogrizzly |
2016-02-06 21:34:39 - Re: Recuperare dati di una specifica colonna
|
Sicuro che i nomi nel db siano diversi per i vari row?
se provi a fare una query come questa : cur.execute("SELECT * FROM users") rows = cur.fetchall() for row in rows: print rowcosa ottieni? poi prova: cursor.execute(query, (id_start, id_end))
for row in cursor:
print row
cosa ottieni?
--- Ultima modifica di Orsogrizzly in data 2016-02-06 22:41:07 --- --- Ultima modifica di Orsogrizzly in data 2016-02-06 22:58:59 --- --- Ultima modifica di Orsogrizzly in data 2016-02-06 23:13:13 --- |
|
Scritto da Daniele aka Palmux |
2016-02-07 13:19:39 - Re: Recuperare dati di una specifica colonna
|
No, stai sbagliando strada, ma più che darti la soluzione, vorrei farti riflettere un po'.
Se tu cicli con un for il tuo rows = cursor.fetchall() per ogni "giro" effettuato avrai il tuo valore corrispondente. Facciamo un esempio, che rende sempre l'idea. Se tu nel database hai valore1, valore2, valore3... nella colonna nome (che palesi oltretutto nella tua query), quando procedi col for ottieni tutti i valori in sequenza: for row in rows: print row valore1 valore2 valore3 ...Poi nel tuo esempio commetti degli errori, alcuni fatali: - Ad ogni "giro" riassegni lo status di global alle variabili, assolutamente controproducente; - Il commit, oltre a non servire a nulla in questo caso, è logicamente nella posizione sbagliata; - Alle variabili globali attribuisci sempre lo stesso valore, cosa che darebbe a tutti le variabili solo ed unicamente l'ultimo valore. Come ti hanno suggerito, devi sporcarti le manine e fare un po' di prove. Tralascia per ora le variabili globali e prova a capire correttamente il funzionamento del database. Il commit ad esempio, mi fa capire che non ti è bene chiaro il funzionamento della libreria. Posta i tuoi vittoriosi risultati, siamo curiosi. Cya |
Pagina: 1
Esegui il login per scrivere una risposta.