Sqlite3: schaun ob der eingegebene Username vorhanden ist

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Sirius3
User
Beiträge: 17844
Registriert: Sonntag 21. Oktober 2012, 17:20

@MupfSpace: NEIN :twisted:

oder bekommst Du etwa eine Exception?
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

@Sirius3 ah, gut zu wissen.

@Mupfspace: dann kannst du zB mit fetchall() alle user abfragen. Das sollte dann ja eine Liste mit nur einem Ergebnis sein. Oder du benutzt fetchone() und kannst dann auch eine execption benutzen, aber nur *GENAU DIE DIE DANN AUCH KOMMEN KANN* und nicht einfach alles abfangen, deine eigenen Fehler inklusive.
Sirius3
User
Beiträge: 17844
Registriert: Sonntag 21. Oktober 2012, 17:20

@__deets__: fetchone wirft keine Exception, sondern liefert entweder irgendeinen Eintrag oder None, falls keiner existiert.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich geb's fuer heute auf... ich habe https://www.python.org/dev/peps/pep-0249/#fetchone gelesen, und bin zu schnell in den zweiten Absatz gesprungen.

Aber um so besser, kann Mupfelspace mit if/else statt try/except arbeiten.
MupfSpace
User
Beiträge: 169
Registriert: Montag 25. Dezember 2017, 20:26

Habe es jezt so gemacht:

Code: Alles auswählen

cursor.execute("SELECT Password  FROM Users WEHRE Username = ?",(User,))
c = cursor.fetchone ()
If p == None:
    print ("Den Nutzer gibt's nicht")
else:
    print ("Dieser Nutzer existiert")
Aber er sagt immer Dieser Nutzer existiert Auch wenn Es eigendlich None zurückgeben müsste weil der Nutzer nicht existiert
Sirius3
User
Beiträge: 17844
Registriert: Sonntag 21. Oktober 2012, 17:20

@MupfSpace: `if` schreibt man klein und `p` ist nicht `c`. Was kommt denn, wenn Du `c` ausgibst?

Nochmal: Was ist der Unterschied zwischen `username` und `User`?
MupfSpace
User
Beiträge: 169
Registriert: Montag 25. Dezember 2017, 20:26

Unterschied: gibt's nicht
Und das Programm funktioniert macht so genau das gleiche wie vorher:
cursor.execute("SELECT Password FROM Users WEHRE Username = ?",(User,))
p = cursor.fetchone ()
if p == None:
print ("Den Nutzer gibt's nicht")
else:
print ("Dieser Nutzer existiert")
Sirius3
User
Beiträge: 17844
Registriert: Sonntag 21. Oktober 2012, 17:20

Was bekommst Du denn, wenn Du `p` ausgibst?
Was ist der Unterschied zwischen `username` und `User`?
MupfSpace
User
Beiträge: 169
Registriert: Montag 25. Dezember 2017, 20:26

1. Es gibt keinen Unterschied zwischen User und Username

2. Er sagt immer das der User existiert auch wenn er es nicht tut

3. Das Python forum hat vergessen die Uhrzeit auf Sommerzeit umzustellen weil beim erscheinungs datum der Beiträge steht alles 1 Stunde früher
Sirius3
User
Beiträge: 17844
Registriert: Sonntag 21. Oktober 2012, 17:20

Warum hat dann Deine Funktion den Namen doppelt?

Code: Alles auswählen

def testUsername(self, username, password, User):
Was bekommst Du denn, wenn Du `p` ausgibst?
MupfSpace
User
Beiträge: 169
Registriert: Montag 25. Dezember 2017, 20:26

Ah jezt hab ich dich verstanden

Ich bekomme None

Aber in der if Bedingung funktioniert es nicht :K
MupfSpace
User
Beiträge: 169
Registriert: Montag 25. Dezember 2017, 20:26

Du hast recht das mit der doppelten Funktion macht gar keinen Sinn :D

Ich machs wieder raus
Sirius3
User
Beiträge: 17844
Registriert: Sonntag 21. Oktober 2012, 17:20

Wenn `p` None ist, dann ist `p == None` wahr (obwohl man besser `p is None` schreibt). Also muß noch irgendetwas anderes nicht stimmen.
bb1898
User
Beiträge: 200
Registriert: Mittwoch 12. Juli 2006, 14:28

Allgemeiner Hinweis: Quelltext in einem Beitrag sollte kopiert und nicht abgeschrieben werden. Dein vertipptes "WEHRE" statt "WHERE" ist hier kein Problem, denn wenn das in Deinem Programm so drinstünde, hätte es einen OperationalError gegeben, ganz unabhängig vom eingegebenen Parameter. Aber so was kann auch mal viel weniger offensichtlich sein.

Stell Dir den umgekehrten Fall vor: Du hast einen Tippfehler im Quelltext und der verursacht das Problem, bei dem Du Hilfe suchst. Beim Abschreiben schreibst Du das entsprechende Wort aber aus Gewohnheit richtig und übersiehst den Unterschied ... da kann man dann wahrscheinlich gar nicht weiterhelfen.
MupfSpace
User
Beiträge: 169
Registriert: Montag 25. Dezember 2017, 20:26

@bb1898
Eigendlich kopier ich immer aber am computer ging Grad das Internet nicht und deshalb musste ich's am Handy schreiben
MupfSpace
User
Beiträge: 169
Registriert: Montag 25. Dezember 2017, 20:26

es funktioniert :D

Ich bin ja auch so dumm kein Wunder das er gesagt hat das der nutze4 3cistiert ich hab in de anderen datei die variable username mit dem inhalt des text Dokumentes für die Registrierung belegt und nicht die für das anmelden :roll:

Aber jezt funktioniert es ja
MupfSpace
User
Beiträge: 169
Registriert: Montag 25. Dezember 2017, 20:26

An alle die mir in diesem thema weiter helfen konnten

Fals ich euch in den Lezten 2 Tagen etwas mit diesem thema genervt habe tut es mir leid :oops:

Und ich wollte mich noch bei allen bedanken
Antworten