Seite 1 von 1
sql abfragen in variablen
Verfasst: Mittwoch 9. Dezember 2020, 15:42
von co-se
mydb = mysql.connector.connect( host="localhost", user="root", password="eadmin", database="svw" )
mycursor = mydb.cursor()
sql = "SELECT dbvmglid, dbvmgl01, dbvmgl02, dbvmgl13, dbvmgl14 FROM dbvmgl WHERE dbvmgl17 = %s"
adr = (card, )
mycursor.execute(sql, adr)
for row in myresult:
print (row)
Ausgabe
1234
Ich
Du
0110
1001
meine Versuch t0 = row[0]
usw.. alles fehl geschlagen
Wie bekomme meine Ausgane in Variablen ?
Re: sql abfragen in variablen
Verfasst: Mittwoch 9. Dezember 2020, 15:59
von Sirius3
myresult ist gar nicht definiert. Also kann es keine Ausgabe geben.
Lass diese my-Präfixe weg, die haben Null Informationsgehalt. Ich hoffe mal, das ist nicht die wirkliche Tabelle, denn die Feldnamen sind schrecklich. Benutze sprechende Namen auch in Datenbanken und vor allem keine kryptischen Abkürzungen oder durchnummerierte Namen.
Was ist der wirkliche Code den Du ausführst, was hast Du versucht und was ist die Fehlermeldung, die Du bei row[0] bekommst?
Re: sql abfragen in variablen
Verfasst: Donnerstag 10. Dezember 2020, 05:29
von co-se
Nachtrag
hatte es wohl nicht hier in übertragen
die tabellen namen wurden mir so vorgegeben ( waren schon da )
mycursor = mydb.cursor()
sql = "SELECT dbvmglid, dbvmgl01, dbvmgl02, dbvmgl13, dbvmgl14 FROM dbvmgl WHERE dbvmgl17 = %s"
adr = (card, )
mycursor.execute(sql, adr)
myresult = mycursor.fetchone()
for row in myresult:
print (row)
hoffe nichts vergessen
Ausgabe
1234
Ich
Du
0110
1001
Bishier alles ok, falls ich wieder was vergesseb haben sollte
laut Internet und Buch
sollte ich
hans = row[0]
print (hans)
print (row[0])
Ausgabe
1234
1234
erhalten
aber ist nicht
Re: sql abfragen in variablen
Verfasst: Donnerstag 10. Dezember 2020, 07:32
von sparrow
.fetchone() liefert dir, wie der Name schon sagt, _einen_ Datensatz. Wenn du über den iterierst, bekommst du seine einzelnen Felder. "row" ist also kein Datensatz, sondern ein Feld in einem Datensatz.
An der Stelle steht sicher etwas Anderes im Buch.
Re: sql abfragen in variablen
Verfasst: Donnerstag 10. Dezember 2020, 08:23
von Sirius3
Die Frage, die Du Dir stellen mußt, ist ob es wirklich nur immer ein Ergebnis der Abfrage geben kann. Das kann man schlecht sehen, weil die Namen wirklich schlecht sind. adr? ard? zdf? Warum ist das irgendwelche Karte? Und warum soll diese Karte gerade im Feld mit der Nummer 17 stehen?
Und dann ist es wichtig, diese kryptischen Namen möglichst schnell in was sinnvolles umbenennen.
Code: Alles auswählen
cursor = mydb.cursor()
cursor.execute("SELECT dbvmglid, dbvmgl01, dbvmgl02, dbvmgl13, dbvmgl14 FROM dbvmgl WHERE dbvmgl17 = %s", [card_id])
vereinsmitglied_id, vorname, nachname, anzahl_weiswuerste, liter_bier = cursor.fetchone()
Und schon hast Du die Werte in aussagekräftigen Variablen.
Re: sql abfragen in variablen
Verfasst: Donnerstag 10. Dezember 2020, 09:16
von __blackjack__
Ich empfehle ja immer gerne SQLAlchemy wenn es um RDMS geht. Hier alleine schon deswegen damit man mit dem ORM dafür sorgen kann, dass man nur an einer Stelle im Programm diese furchtbaren Namen aus der Datenbank hat, und ab da dann Aussagekräftiges.
