Namen und Zahlen

Moartel

Erfahrenes Mitglied
Hallo Allerseits.
Ich habe mich jetzt doch dazu entschlossen MySQL zu lernen. Damit will ich jetzt eine interne Section für meinen Clan machen. Ich habe eine Tabelle für Members, in der Spalten für den Namen, die Lieblingswaffe, die Lieblingsmap, die ICQ-Nummer usw. sind. Die Administration (neuer Member, Member löschen) soll auch über Skript gehen. Ich benutze PHP4 als Skriptsprache, die hat aber nichts mit meinem eigentlichen Problem zu tun.
Ich bin dabei das Login zu erstellen. Es soll eine Dropdownliste mit den Namen der Clanmembers und ein Passwortfeld angezeigt werden. Die Dropdownliste wird aus der Datenbank generiert. Das funktioniert soweit einwandfrei. Wenn jetzt jemand seinen Namen aus der Liste ausgewählt, und sein Passwort eingegeben hat, muss ich nur noch überprüfen ob das Passwort stimmt. Dazu muss ich das Passwort dass zum Namen gehörrt aus der Datenbank holen. Ich habe es damit versucht: SELECT passwort FROM members WHERE nickname = name. Für name setzt ich jeweils den Namen des Clanmitglieds ein. Leider kann ich diese Syntax aber nur anwenden wenn name eine Zahl ist. Ich muss also jedem Member eine Nummer zuweisen, mit der ich ihn inn der Datenbank identifiziere. Das Problem ist: Wie finde ich die Nummer des Clanmembers heraus, wenn ich beim Login nur seinen Namen habe? Gibt es da eine zuverlässige Suchfunktion? Oder gibt es einen anderen Weg. Mir ist bis jetzt nichts eingefallen was auch bei einer größeren Anzahl an Members schnell genug geht.
 
du musst eine id spallte anlegen die auto_increment und primary key und not null hat. da schreibste beim eintragen einfach immer "null" und er macht die zahlen automatisch folgend. beim auswählen sagst du dann select member, id, pass from tabelle;

später beim eingeben machste if passwort = $pass header...
würd ich jetzt frei nach schnautze sagen
 
erstmal: hä??????

Also dass mit der Spalte für ne id ist mir klar. Dass ich das mit auto_increment machen muss auch. Wie das so genau geht weiß ich aber nicht :-(.
Mein Problem ist ja nicht dass ich nicht den namen und das Passwort abrufen kann. Ich will das Passwort eines bestimmten Members abrufen. Mit den Befehl SELECT id, name, passwort FROM members; kriege ich aber alle ids, Namen und Passwörter die in der Tabelle stehen. Da muss ich mir wieder den richtigen raussuchen. Ganz zu schweigen dass ich nicht mal wüsste wie ich das in PHP abrufen soll. Mehrere Spalten und mehrere Zeilen gleichzeitig?
 
:eek: :eek: :eek: Wow es gibt also noch mehr mit dem Problem.
Ich hab das mal ausgibig mit meiner abfrage die fast genauso aufgebaut ist getestet könnte es sein das du für das Passwort das du aus der MySQL Tabelle liest keinen Wert bekommst?
 
Ne, ist ein bisschen anders. Ich poste einfach mal den genauen Befehl den ich benutzt habe. Er funktioniert nicht!
SELECT passwort FROM members WHERE nick = blablabla.
Antwort von MySQL: Columns nick does not exist oder so ähnlich.

Gibt es in MySQL vielleicht so eine Art equals wie in verschiedenen Programmiersprachen um speziell Strings zu übrprüfen? So was in der Art hat doch sicher schon jemand hier gemacht. Wie geht das?
 
also nick als name geht sonst würde er schon bei der estellung motzen.
probiers mal so
"select password from member where nick = \"$feld\"";

$feld is lediglich die eingabe für den namen.
text wird in mysql immer in hochkommata gesetzt.
So hats zumindest bei mir geklappt
 
Ich werde das mal testen. Zur Zeit bringt mir PHP immer die Meldung dass ich keinen gültigen Result-Handle habe. Vielleicht hilft mir dein Tipp.
 
LIKE

1. Der Tip von HeadFragGer2K mit den Hochkomma's ist ein guter Tip. Eine meiner Abfragen sieht z.B. so aus:
Code:
$sql = "SELECT * FROM tabelle WHERE name = \"$nick\"";

2. Anstatt dem Gleichheitszeichen gibt es in MySQL auch das Schlüsselwort "LIKE". Das sieht dann so aus:

Code:
$sql = "SELECT * FROM tabelle WHERE name LIKE \"$nick\"";

aber auch hier brauchst Du die Hochkommas.

Ich hoffe, damit kommst Du zu einem Ergebnis.

Gruß
Dunsti
 
Ich glaub ich habe meinen Fehler gefunden. Ich habe die Hochkomma nicht mit \ escapet. Muss noch viel üben bis ich mit MySQL und PHP zurechtkomme :rolleyes:
 
vergesse ich auch immer

mach Dir nix draus, den Backslash vergesse ich auch (fast) immer.

Das Gute ist aber, daß man aus solchen Fehlern wirklich lernt ... das nächste mal schaust Du als erstes automatisch auf die Backslashes vor den Hochkommas .... weiß ich aus eigener Erfahrung :-) :-) :-)

Trotzdem noch viel Spaß und viel Erfolg beim Programmieren.

und nicht wegen solcher Kleinigkeiten entmutigen lassen :)

Gruß
Dunsti
 
Zurück