Einzelne Felder einer MySQL Tabelle auslesen

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Sirius3
User
Beiträge: 18215
Registriert: Sonntag 21. Oktober 2012, 17:20

@TorstenVoelker: Du fragst nach einem Beispiel, das ich Dir bereits gegeben habe? Häh?
Es hat den anschein, dass Du die Antworten gar nicht richtig liest, wenn Du konkrete etwas nicht verstehst, solltest Du ganz konkret nachfrangen. Die Frage nach PHP und Python hatten wir ja schon zur genüge hier diskutiert, und da kam immer wieder heraus, dass es keinen wesentlichen Unterschied bei der SQL-Anbindung gibt.
TorstenVoelker
User
Beiträge: 124
Registriert: Mittwoch 5. Februar 2025, 12:55

Ich habe die ganzen Threads bzw antworten gelesen und versucht umzusetzen.

Habe es versucht mit

Cursor.execude(Select * from Bank where user = 'thorsten' )
Result = cursor.fetchall()

Dann

For Name in result:
User = Name

For Ort in result
Stadt = result

Aber es kommt dann dazu das alle Parameter der Datenbank ausgelesen werden .

Weil so habe ich es verstanden laut Antwort von euch aber anscheinend wohl nicht richtig umgesetzt .

In php zb habe ich es ja anders gemacht .

$member2 = Select bla , bla ,bla where User = 'User‘
$member = mysql_fetch_array($member2)

Dann mir es anzeigen lassen

Mein Name <? Echo $member[user];?>
Benutzeravatar
sparrow
User
Beiträge: 4501
Registriert: Freitag 17. April 2009, 10:28

In Sirius3 Beitrag von 14:18 ist alles beschrieben.
Warum du andere Dinge versuchst als das, was dort beschrieben ist, kannst nur du beantworten.
Und das jetzt noch einmal zu posten, wird auch nicht mehr Informationen vermitteln.
TorstenVoelker
User
Beiträge: 124
Registriert: Mittwoch 5. Februar 2025, 12:55

Sirius3 hat geschrieben: Sonntag 13. April 2025, 13:18 `data` ist ein schlechter Name für ein Modul. Und conn ist wahrscheinlich die Datenbankverbindung?
Klassen werden mit großem Anfangsbuchstaben geschrieben, damit man sie als Klasse erkennen kann.
for-Schleifen sind eigentlich dazu da, für gleichartige Objekte immer das selbe zu tun, Du benutzt es aber dazu, ein einelementiges Tuple zu entpacken, dazu gibt es aber Tuple-Unpacking. Statt drei einzelner Abfragen, mach doch einfach eine einzige.
Es ist seltsam, dass Du konto abfragst, das Du ja als Filter in die Abfrage hineingibst. Was erwartest Du, dass da herauskommt?
Man nummeriert keine Variablennamen, entweder hat man bessere Namen und will eigentlich eine Liste verwenden.

Code: Alles auswählen

from contextlib import closing
from database import create_database_connection

class Kunde:
    def __init__(self,username,konto,kontostand):
        self.username = username
        self.konto = konto
        self.kontostand = kontostand


def main():
    with closing(create_database_connection() as connection):
        kontonummer = '1301798649'
        cursor = connection.cursor()
        cursor.execute("SELECT username, kontostand FROM bank WHERE konto = %s", (kontonummer,))
        username, kontostand = cursor.fetchone()
        kunde = Kunde(username, kontonummer, kontostand)
    print(f"Username = {kunde.username} ")
    print(f" Kontonummer : {kunde.konto} ")
    print(f" Kontostand : {kunde.kontostand} Euro ")

if __name__ == "__main__":
    main()
Ahhh jetzt hat es klick gemacht .

Danke .

Wünsche frohe Ostern Dir und Deiner Familie!
TorstenVoelker
User
Beiträge: 124
Registriert: Mittwoch 5. Februar 2025, 12:55

Hallo Ihr Lieben , ich brauche noch einmal Eure Profisionelle Hilfe.
Ich komme leider nicht weiter .


Ich will jetzt 2 konten anlegen einmal meine und die des Empfängers .

So wie ich das versucht habe (Siehe Script ) funktioniert es nicht , was auch später mir einleuchtete .
Kann mir einer sagen, wie ich das machen kann ?

Es geht um die K_2 Abfrage.

Ich habe es am Anfang manuel gemacht also selber Daten eingeben , also funktionieren tut es.
Nur ich will es ja varieren mit verschiedenen konten die man per input eingibt .




Code: Alles auswählen

 print(Fore.YELLOW + "Herzlich Willkommen im Transaktion Center. \n Hier kannst Du Überweisungen tätigen")
        von = int(input("Bitte gebe Deine Kontonummer ein"))
        an =  int(input("Gebe Die Empfänger Kontonummer ein"))
        anz = int(input("Gebe den Betrag ein"))



        trans_conn = conn()
        t_cursor = trans_conn.cursor()
        t_cursor.execute("SELECT username,konto,kontostand,dispo,datum,time FROM bank WHERE konto = %s",(von,))
        username,konto,kontostand,dispo,datum,time = t_cursor.fetchone()
        trans_conn.close()



        k_1 = kunde(username,konto,kontostand,dispo,datum,time)



        emp_conn = conn()
        cur = emp_conn.cursor()
        cur.execute("SELECT * from bank WHERE konto = %s",(an,))
        username,konto,kontostand,dispo,datum,time = cur.fetchone()
        emp_conn.commit()
        emp_conn.close()


        k_2 = kunde(username,konto,kontostand,dispo,datum,time)





        k_1.trans(k_2,anz)
        k_2.trans(k_2,anz)

Code: Alles auswählen


 def trans(self,ziel,anz):
        self.kontostand -= anz
        ziel.kontostand += anz
        transaktion = conn()
        cur_trans = transaktion.cursor()
        cur_trans.execute(f"UPDATE bank SET kontostand = {self.kontostand}  WHERE konto = {self.konto}")
        cur_trans.execute(f"UPDATE bank SET kontostand = {ziel.kontostand} WHERE konto = {ziel.konto}")
        transaktion.commit()
        transaktion.close()
        print(Fore.GREEN + f"Du hast {ziel.username} {anz} € erfolgreich Überwiesen")

Benutzeravatar
__blackjack__
User
Beiträge: 13919
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@TorstenVoelker: Du solltest als erstes mal an Namen arbeiten. Einheitlich; und nicht mal `t_cursor`, `cur`, `cur_trans` für Cursor oder `trans_conn`, `emp_conn`, `transaktion` für die Verbindungen zur Datenbank. Und keine kryptischen Abkürzungen. Cursor heissen `cursor` und Verbindungen `connection`. Nur wenn mehr als ein Objekt gleichzeitig existiert und aktiv ist, und das ist hier bei keinem Cursor und keiner Verbindung der Fall, macht es Sinn den Namen um die speziellere Bedeutung zu erweitern, und zwar nicht abgekürzt.

Man nummieriert auch keine Namen. Der Leser muss nicht wissen in welcher Reihenfolge die Kunden-Objekte erstellt wurden, sondern welcher Kunde welche Rolle in dieser Überweisung spielt. Also `sender` und `empfaenger` wären beispielsweise sinnvolle Namen für `k_1` und `k_2`.

`von`, `an`, und `anz` sind auch keine guten Namen für Kontonummern und einen Betrag. Ein Betrag ist etwas anderes als eine Anzahl. Falls das die Bedeutung von `anz` sein sollte — keine Abkürzungen.

Die gleichen Daten werden mit unterschiedlich formulierten SELECT-Anweisungen abgefragt. Warum? So etwas sollte nicht sein. Und auch zweimal der gleiche Anfragetext sollte nicht im Programm stehen. Dafür definiert man dann einmal eine Konstante, oder man hat eine statische beziehungsweise Klassenmethode auf der `Kunde`-Klasse der man eine Datenbankverbindung (oder einen Cursor) übergibt, und die dann die Daten abfragt und ein entsprechendes `Kunde`-Objekt liefert. Oder zumindest eine Funktion die das macht.

`kunde` sollte `Kunde` heissen, denn das ist eine Klasse. Allerdings von der Bedeutung her ist das wohl auch eher ein `Konto` und kein `Kunde`. Da ist der Datenbanktabellenname auch komisch, denn die Tabelle `bank` enthält gar keine Banken. Warum ist in der Tabelle eigentlich so eine Denglische Mischung bei den Spaltennamen? Auch im Programm sollte man sich auf *eine* Sprache für die Namensvergabe beschränken. Und der Benutzername hat in den Kontodaten eigentlich nichts zu suchen, denn das verletzt die Normalform, es sei denn es ist ausgeschlossen das ein Benutzer mehr als ein Konto haben kann.

Das sollte alles nur über eine Verbindung abgewickelt werden, damit die Überweisung aus Datenbanksicht atomar ist.

Und man sollte auch sowohl die Eingabedaten als auch den Kontozustand prüfen. Damit man beispielsweise keine negativen Beträge ”überweisen” kann, nicht mehr überweisen kann als das Konto hergibt, und so weiter.

Dann macht das keinen Sinn die Überweisung auf beiden Kunden-Objekten aufzurufen. Dann wird das Geld ja nur einmal hin und her überwiesen, und am Ende ist wieder alles wie vorher.

`ziel` sollte wohl auch eher `empfaenger` heissen. Wenn Kunden Ziele sind, arbeitet man im Marketing. 🤡

Man formatiert keine Werte in SQL-Zeichenketten. Beim Abfragen machst Du es doch richtig, warum beim aktualisieren nicht?

Benutzerinteraktion und Programmlogik sollten getrennt sein.

Und ganz grundsätzlich speichert man bei solchen Zahlungsvorgängen die Kontobewegungen, und nicht nur das Endergebnis. Und zwar zweimal, also einmal aus Sicht jedes Kontos. Damit man das am Ende alles sauber nachvollziehen kann.
“I am Dyslexic of Borg, Your Ass will be Laminated” — unknown
TorstenVoelker
User
Beiträge: 124
Registriert: Mittwoch 5. Februar 2025, 12:55

__blackjack__ hat geschrieben: Dienstag 15. April 2025, 16:54 @TorstenVoelker: Du solltest als erstes mal an Namen arbeiten. Einheitlich; und nicht mal `t_cursor`, `cur`, `cur_trans` für Cursor oder `trans_conn`, `emp_conn`, `transaktion` für die Verbindungen zur Datenbank. Und keine kryptischen Abkürzungen. Cursor heissen `cursor` und Verbindungen `connection`. Nur wenn mehr als ein Objekt gleichzeitig existiert und aktiv ist, und das ist hier bei keinem Cursor und keiner Verbindung der Fall, macht es Sinn den Namen um die speziellere Bedeutung zu erweitern, und zwar nicht abgekürzt.

Man nummieriert auch keine Namen. Der Leser muss nicht wissen in welcher Reihenfolge die Kunden-Objekte erstellt wurden, sondern welcher Kunde welche Rolle in dieser Überweisung spielt. Also `sender` und `empfaenger` wären beispielsweise sinnvolle Namen für `k_1` und `k_2`.

`von`, `an`, und `anz` sind auch keine guten Namen für Kontonummern und einen Betrag. Ein Betrag ist etwas anderes als eine Anzahl. Falls das die Bedeutung von `anz` sein sollte — keine Abkürzungen.

Die gleichen Daten werden mit unterschiedlich formulierten SELECT-Anweisungen abgefragt. Warum? So etwas sollte nicht sein. Und auch zweimal der gleiche Anfragetext sollte nicht im Programm stehen. Dafür definiert man dann einmal eine Konstante, oder man hat eine statische beziehungsweise Klassenmethode auf der `Kunde`-Klasse der man eine Datenbankverbindung (oder einen Cursor) übergibt, und die dann die Daten abfragt und ein entsprechendes `Kunde`-Objekt liefert. Oder zumindest eine Funktion die das macht.

`kunde` sollte `Kunde` heissen, denn das ist eine Klasse. Allerdings von der Bedeutung her ist das wohl auch eher ein `Konto` und kein `Kunde`. Da ist der Datenbanktabellenname auch komisch, denn die Tabelle `bank` enthält gar keine Banken. Warum ist in der Tabelle eigentlich so eine Denglische Mischung bei den Spaltennamen? Auch im Programm sollte man sich auf *eine* Sprache für die Namensvergabe beschränken. Und der Benutzername hat in den Kontodaten eigentlich nichts zu suchen, denn das verletzt die Normalform, es sei denn es ist ausgeschlossen das ein Benutzer mehr als ein Konto haben kann.

Das sollte alles nur über eine Verbindung abgewickelt werden, damit die Überweisung aus Datenbanksicht atomar ist.

Und man sollte auch sowohl die Eingabedaten als auch den Kontozustand prüfen. Damit man beispielsweise keine negativen Beträge ”überweisen” kann, nicht mehr überweisen kann als das Konto hergibt, und so weiter.

Dann macht das keinen Sinn die Überweisung auf beiden Kunden-Objekten aufzurufen. Dann wird das Geld ja nur einmal hin und her überwiesen, und am Ende ist wieder alles wie vorher.

`ziel` sollte wohl auch eher `empfaenger` heissen. Wenn Kunden Ziele sind, arbeitet man im Marketing. 🤡

Man formatiert keine Werte in SQL-Zeichenketten. Beim Abfragen machst Du es doch richtig, warum beim aktualisieren nicht?

Benutzerinteraktion und Programmlogik sollten getrennt sein.

Und ganz grundsätzlich speichert man bei solchen Zahlungsvorgängen die Kontobewegungen, und nicht nur das Endergebnis. Und zwar zweimal, also einmal aus Sicht jedes Kontos. Damit man das am Ende alles sauber nachvollziehen kann.

Danke für die Belehrung, aber da ich noch lerne und einige Sachen mir noch Aneignen werde , wird es bestimmt in 1 Jahr habt anders aussehen .

Wie ich verstanden habe , ist so garnicht möglich wie ich es mir vorgestellt habe . Nur ich muss ja irgendwie an die Daten kommen vom Kunden 2 den ich das überweise sonst kann ich ja keine Überweisung durchführen , sprich ihn als Kunden für die Klasse garnicht hinzufügen .

Das was du so jetzt so geschrieben hast ist ja schön und gut aber löst ja grade nicht mein derzeitiges Problem .

Wie könnte ich es am besten bewältigen?
So wie du es oben ein wenig erklärt hast hört sich das sehr komplex an , oder es scheint nur so .
Zuletzt geändert von TorstenVoelker am Dienstag 15. April 2025, 17:37, insgesamt 1-mal geändert.
Benutzeravatar
__blackjack__
User
Beiträge: 13919
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@TorstenVoelker: Das sind Probleme die Du *jetzt* angehen solltest, nicht erst später, denn wenn Du das jetzt nicht übst und lernst, dann wird das auch später nix. Und das sind teilweise auch Sachen die Fehler verhindern, und das ganze einfacher testbar machen um Fehler zu finden. Du musst sauberer arbeiten und formulieren und benennen, sowohl in den Programmen als auch in den Beiträgen. *Das* *ist* eines Deiner derzeitigen Probleme.

”Das” Problem ist das unsinnige hin und her überweisen. Musst Du halt einfach sein lassen und nur in eine Richtung überweisen. Oder Dein Problem ist, beziehungsweise nicht oder sondern *und*: Du beschreibst Dein Problem nicht ausreichend. Wir können das ja nicht wirklich nachvollziehen. Dazu fehlen Informationen die wir und dann ausdenken müssen. Und dann kann es sein, dass dabei das Problem gar nicht auftritt, weil wir von anderen Voraussetzungen ausgehen als Du tatsächlich vor Ort hast. Da kann man dann nicht wirklich sinnvoll konkret helfen, wenn man das konkrete Problem nicht kennt und auch keine Möglichkeit hat das heraus zu finden.
“I am Dyslexic of Borg, Your Ass will be Laminated” — unknown
TorstenVoelker
User
Beiträge: 124
Registriert: Mittwoch 5. Februar 2025, 12:55

Also da habe ich mal eine spezifische Frage .
Du sagtest ja man braucht ja nicht 100 mal die gleiche Abfrage machen das ich cursor 1 und 2 usw nehme .

Also könnte ich eine Abfrage machen zum Beispiel für ein Wörterbuch und kann die Abfrage öfter nutzen ohne immer eine neue Verbindung zu erstellen .
TorstenVoelker
User
Beiträge: 124
Registriert: Mittwoch 5. Februar 2025, 12:55

Achso , das hatte ich vergessen .
Zu Deiner frage , warum ich so was mache mit der hin und zurück Überweisung .

Ich habe ein Python Buch wo man lernt mit Klassen zu arbeiten und bin jetzt beim Kapitel wo sowas erklärt wird , das Manuel zu machen ist ja nicht schwer das bekomme ich ja hin .

Weil man legt einfach 2 kunden ab und gut aber ich wollte es mal jetzt versuchen statt manuell es mit einer Datenbank zu machen und per Input die Namen die in einer variable gespeichert werden zu benutzen ,

So ist es ja kein Problem nur ich kämpfe jetzt seit 2 Stunden wie ich Kunde1 und kunde2 separat getrennt auslesen kann und die Daten wie beim kunden1 in meinen Script dann auch für den Kunden2 anlegen kann .

Weil ich lese viel und schaue mir in jeder freien Zeit Tutorials an zum Thema sql und oop in Python .

Aber das Problem ist 5 % von den Videos sind brauchbar und die es auch gut erklären .

Als die Leute die selber std am überlegen sind wie man sowas macht .
Benutzeravatar
noisefloor
User
Beiträge: 4149
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Also könnte ich eine Abfrage machen zum Beispiel für ein Wörterbuch und kann die Abfrage öfter nutzen ohne immer eine neue Verbindung zu erstellen .
Das macht nur so halb Sinn, also inhaltlich. Grundsätzlich: Variablen haben in Python einen Gültigkeitsbereich, auf englisch "scope". Solange du in dem Scope bist, in der die Variable gültig ist, kannst du beliebig oft auf die Variable zugreifen.

Das sind Python Grundlagen, die _musst_ du verstanden haben, sonst wird das nichts. Ohne den Gültigkeitsbereich verstanden zu haben, brauchst du über Klassen erst gar nicht nachdenken. Sonst kannst du halt nicht verstehen, wie und warum z.B. Attribute einer Klasse bzw. einer Instanz einer Klasse funktionieren.
So ist es ja kein Problem nur ich kämpfe jetzt seit 2 Stunden wie ich Kunde1 und kunde2 separat getrennt auslesen kann und die Daten wie beim kunden1 in meinen Script dann auch für den Kunden2 anlegen kann .
Na ja... du musst es halt separat auslesen. Ich sehe jetzt nicht, so dein Problem konkret ist. Allgemein musst du halt für jeden Kunden eine passende Datenstruktur anlegen. Eine Klasse, eine Dataclass, ein Dict, ... was immer sinnvoll ist.

Aber: mit OOP und Klassen bist du scheinbar schon viel zu weit, dir fehlen vorher definitiv Grundlagen vorher. Entweder fängst du nochmal weiter vorne an oder du liest was mit besserer Substanz. Wie z.B. das offizielle Python-Tutorial auf docs.python.org.

Gruß, noisefloor
TorstenVoelker
User
Beiträge: 124
Registriert: Mittwoch 5. Februar 2025, 12:55

noisefloor hat geschrieben: Dienstag 15. April 2025, 18:16
Also könnte ich eine Abfrage machen zum Beispiel für ein Wörterbuch und kann die Abfrage öfter nutzen ohne immer eine neue Verbindung zu erstellen .
Das macht nur so halb Sinn, also inhaltlich. Grundsätzlich: Variablen haben in Python einen Gültigkeitsbereich, auf englisch "scope". Solange du in dem Scope bist, in der die Variable gültig ist, kannst du beliebig oft auf die Variable zugreifen.

Das sind Python Grundlagen, die _musst_ du verstanden haben, sonst wird das nichts. Ohne den Gültigkeitsbereich verstanden zu haben, brauchst du über Klassen erst gar nicht nachdenken. Sonst kannst du halt nicht verstehen, wie und warum z.B. Attribute einer Klasse bzw. einer Instanz einer Klasse funktionieren.
So ist es ja kein Problem nur ich kämpfe jetzt seit 2 Stunden wie ich Kunde1 und kunde2 separat getrennt auslesen kann und die Daten wie beim kunden1 in meinen Script dann auch für den Kunden2 anlegen kann .
Na ja... du musst es halt separat auslesen. Ich sehe jetzt nicht, so dein Problem konkret ist. Allgemein musst du halt für jeden Kunden eine passende Datenstruktur anlegen. Eine Klasse, eine Dataclass, ein Dict, ... was immer sinnvoll ist.

Aber: mit OOP und Klassen bist du scheinbar schon viel zu weit, dir fehlen vorher definitiv Grundlagen vorher. Entweder fängst du nochmal weiter vorne an oder du liest was mit besserer Substanz. Wie z.B. das offizielle Python-Tutorial auf docs.python.org.

Gruß, noisefloor
Also eine separate Klasse für den Kunden und mit der anderen Klasse erben das man die zusammen fassen kann . Das müsste auch eine Lösung sein .. oder ?
Benutzeravatar
noisefloor
User
Beiträge: 4149
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Programmieren ist nicht raten. Wo du hier den Sinn von Vererbung siehst erschließt sich mir nicht... Mal abgesehen davon, dass Klassen drei Schritte zu weit für dich sind und Vererbung von Klassen damit mindestens vier Schritte zu weit.

Und was willst du zusammenfassen? Wie __blackjack__ schon sagte: wenn man sein Problem nicht in Worten beschreiben kann, kann man es auch nicht erfolgreich in Code gießen. Das eine bedingt das anderen. Gilt immer, von Anfänger bis Profi.

Und hör' doch mal endlich auf, Posts, die unmittelbar vor deinem stehen, Volltext zu zitieren. Es sei denn, du machst das mit Absicht, weil du eigentlich nur trollen willst. Eigentlich sind alle Leute, die hier unterwegs sind, dazu in der Lage, zu scrollen und einen Thread systematisch zu lesen.

Gruß, noisefloor
TorstenVoelker
User
Beiträge: 124
Registriert: Mittwoch 5. Februar 2025, 12:55

So mal Klartext .

1) will ich keinen Trollen
2) das Problem was ich habe wo ich eine Lösung suche habe ich erklärt und sollte ja nicht so kompliziert sein .

3) ich frage höflich ob mir einer eine Lösung geben kann zu meinem Problem . Aber es kommen nur Kommentare , fang mit was anderen an und und .
Ich weiß das ich noch Übung brauche aber ich verstehe schon einige Sachen die ich auch umsetzen kann aber Ebend nur das Problem was ich oben beschrieben habe ist zur Zeit mein Problem .

4) Es gibt 2 Arten von typen , die einen sind super Nerds die haben es schnell selber raus andere brauchen ab und zu Hilfe .


Beispiel : ich habe einen Bekannten gehabt der leider nicht mehr hier wohnt der hat mit Java angefangen und in 1 Jahr hat er komplexe Spiele Chats etc. gebaut . Will damit sagen , einer lernt es in 1 Jahr und ist Profi der andere braucht 2 Jahre.
Sirius3
User
Beiträge: 18215
Registriert: Sonntag 21. Oktober 2012, 17:20

@TorstenVoelker: ich lese hier ja auch mit. Du schreibst "funktionier nicht, was mir einleuchtet". Wenn es Dir einleuchtet, mir leuchtet da nichts ein. Zu einer richtigen Fehlerbeschreibung gehört ein Programm, das man den Fehler zeigt, das man am besten auch ausführen kann, eine genaue Beschreibung, was passiert und wie das von der Erwartung abweicht.

Du schreibst, dass es "klick gemacht hat", im nächsten Beitrag sehe ich aber, dass wieder *-SELECT und Werte in SQL-Anweisungen hineinformatiert werden. Auch das mit den sprechenden Namen wurde schon mehrfach erwähnt. Da ist es mit dem Klick nicht weit her.

Sorgfältiges Arbeiten gehört zum Programmieren, weil es hilft Fehler zu vermeiden.
Benutzeravatar
noisefloor
User
Beiträge: 4149
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

jeder hat mal angefangen und jeder darf Fehler machen. Aber: bei dir ist es so, dass die exakt die selben Fehler X mal machst - wurde von Sirius3 ja schon angesprochen - was dann automatisch zu der Frage führt: liest und verstehst du überhaupt, was dir hier gesagt wird? Die wurde auch mehrfach gesagt, dass du das offizielle Python-Tutorial mal durcharbeiten solltest - hast du das gemacht?

Außerdem ist es bei dir auch so, dass du zu viel zu schnell willst. Um mal ein Sprachbild zu benutzen: du hast gerade den PKW Führerschein gemacht und das hat auch geklappt, willst du aber im nächsten Schritt im einem WRC Auto flat out über eine Schotterpiste mit 25m Sprüngen heizen. Kann man machen, geht aber in der Regel schief. So auch hier.

Und nein, dein Problem ist _nicht_ vernünftig beschrieben. Mal abgesehen davon, dass dein Satzbau wegen Wortwohl und Satzstellung echt schwer zu lesen ist, fehlt nach wie vor ein _detailliertes_ Beispiel in ausführlicher Tiefe, was a) die _genaue_ Ausgangssituation ist und b) wie das _genau_ am Ende aussehen soll. Und zwar so erklärt, dass auch ein ausstehendes ohne Ahnung davon versteht, was du vor hast.

Gruß, noisefloor
TorstenVoelker
User
Beiträge: 124
Registriert: Mittwoch 5. Februar 2025, 12:55

Ich wollte nur wissen wie ich 2 abfragen in Folge machen kann mehr nicht . Also wie oben beschrieben .

Aber macht mal weiter , habe keine Lust mir nur Vorwürfe anzuhören .
Sirius3
User
Beiträge: 18215
Registriert: Sonntag 21. Oktober 2012, 17:20

Zwei Abfragen in Folge macht man, in dem man eine Funktion schreibt, die ein Konto abfrägt und öffnet einmal die Datenbankverbindung und ruft diese Funktion zwei mal auf.
Wenn ich jetzt die Frage richtig verstanden habe, so ist mir immer noch nicht klar, wo konkret das Problem dabei ist.
Benutzeravatar
__blackjack__
User
Beiträge: 13919
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Wobei in dem gezeigten Code ja zwei Anfragen nacheinander gemacht werden. Es fehlt halt immer noch eine sinnvolle Erklärung warum das angeblich nicht funktioniert. Also die Fehlermeldung oder eine Beschreibung vom erwarteten Verhalten und an welcher Stelle das in welcher Form dann im Programm davon abweicht.
“I am Dyslexic of Borg, Your Ass will be Laminated” — unknown
TorstenVoelker
User
Beiträge: 124
Registriert: Mittwoch 5. Februar 2025, 12:55

Der Fehler zeigt die variablen Username , Konto etc. das die schon gesetzt sind in der ersten Abfrage somit ist das nicht möglich .

Weil ich will ja einmal die Abfrage wo der Absender abgefragt wird und einmal der Empfänger so wie das im Script detailliert ist .

Muss mal morgen es versuchen wie @Sirius3 schon geschrieben haben es in einer Funktion zu packen .

Wo ich euch aber allen recht gebe ist das saubere programmieren das muss ich mir noch unbedingt aneignen.


Mal kurz zum Thema warum ich mit Klassen arbeite . Ich habe das Buch Python 3 und da idtvdad nächste Kapitel Klassen und ich wagte mich daran , ich finde es nicht sehr leicht aber auch nicht zu kompliziert.

Habe den Zusammenhang ein wenig verstanden und habe das Script ohne weiteren luschern im Buch geschrieben . Weil muss ja lernen es alleine zu bewältigen und nicht immer alles abschreiben.

Was aber in diesem Zu wenig erklärt wird ist die Zusammenarbeit mit MySQL .
Antworten