PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit MySQL-Query!!!


tomtom
2004-06-11, 17:30:08
Hi!

Ich habe auf meiner HP einen UserLogin. Die Daten dazu werden aus einer MySQL Datenbank ausgelesen. Leider kann ich mit unten stehendem Befehl immer nur den User für den Login zulassen, für den ein Datensatz(Zahl: 3 io meinem Code) angegeben wurde:

wa_user = mysql_result($dbuser, 3, "username");

Ich habs auch schon mit einer for-Schleife versucht, allerdings wird dann immer der Endwert der Schleife verwendet. Wie kann ich das lösen? Es soll allen Usern möglich sein, sich hier einzuloggen!!!

THX im Voraus,
MFG, terminator2k3

ethrandil
2004-06-11, 18:14:29
Zeig doch mal deinen Select-Befehl für die Datenbank...

- Eth

JTHawK
2004-06-11, 18:19:02
dein code macht mich ganz wuschig ..

was soll denn der genau bezwecken ?
und was ist wa_user ?

also du willst in einer Datenbank suchen ob der username und das password das eingegeben wurde stimmt ?

dann machs doch so:


$result = mysql_query("SELECT * FROM userdatenbank WHERE username='$username' AND password='$password'");
if (mysql_num_rows($result)) {
//daten stimmen
} else {
//daten stimmen net
}

tomtom
2004-06-11, 18:26:32
Auslesen kann ichs! Das Problem liegt darin, dass bei
mysql_result($dbuser, $i, "username"); $i für alle Datensätze(1,2,3,4,5,6,7,.....) stehen soll. Leider wird immer nur EIN Wert übergeben(im Falle der for-Schleife:3), d.h. bei 7 wäre es nur dem User gestattet sich einzuloggen, der in der Datenbank den 7ten Datensatz belegt. Alle anderen dürfen sich nicht einloggen!
Und ich möchte jetzt nur wissen, wie ich das anstelle dass im obigen Befehl für $i alle Datensätze gemeint sind, damit sich alle User einloggen dürfen!!

Ich hoffe ich habs jetzt besser erklärt was ich meine ;)
MFG

ethrandil
2004-06-11, 18:38:27
Original geschrieben von terminator2k3 Ich hoffe ich habs jetzt besser erklärt was ich meine ;)
MFG
irgendwie nicht :(

also dein Select-String müsste doch so sein wie "SELECT * FROM userdatenbank WHERE username='$username' AND password='$password'"

Dann ist doch klar, dass es nur EINEN Benutzer gibt auf den das passt, denn nur EIN Benutzer hat diesen Namen...
irgendwas machst du falsch...... gib doch mal besser mehr Code...

- Eth

EDIT:
Da es nur ein Ergebnis gibt ist $i dabei immer 0..

tomtom
2004-06-11, 19:53:58
Das Passwort und der Username werden extra ausgelesen:

$dbuser = mysql_db_query("w3fx_members", "SELECT * FROM user WHERE webadmin='yes'");
$dbpasswd = mysql_db_query("w3fx_members", "SELECT password FROM user");

webadmin='yes' bedeutet, dass er alle User nehmen soll, denen es erlaubt ist, sich in mein Newssystem(webadmin) einzuloggen(und das dürfen nur moderatoren).

$wa_user = mysql_result($dbuser, $i, "username");
$wa_pwd = mysql_result($dbpasswd, $i, "password");

Mit den beiden Variablen wa_user und wa_pwd sollen alle Datensätze ausgewertet werden. $i soll den Datensatz angeben, der zu wählen ist. Und das sollen nun mal alle Datensätze mit webadmin='yes' sein. Bitte sagt mir wenn ich mich diesbezüglich irre, ich beschäftige mich noch nicht lange mit MySQL-Datenbanken.

thx, mfg

Gast
2004-06-11, 20:06:43
Also die Schleife müsste doch irgendwie so aussehen:

for($i=0;$i<mysql_num_rows($dbuser);$i++) {
$wa_user = mysql_result($dbuser, $i, "username"); }


Hast du das so?

Mit mysql_num_rows($dbuser) kannst du ja feststellen, wie viele Datensätze dein Select zurück gegeben hat.

MadMan2k
2004-06-11, 21:42:04
ohne so recht zu vertehen, was du da eigentlich machst (machen willst), empfehle ich dir mal das so zu versuchen:
http://tut.php-q.net/login.html

JTHawK
2004-06-11, 22:00:45
Original geschrieben von terminator2k3
Das Passwort und der Username werden extra ausgelesen:

$dbuser = mysql_db_query("w3fx_members", "SELECT * FROM user WHERE webadmin='yes'");
$dbpasswd = mysql_db_query("w3fx_members", "SELECT password FROM user");

webadmin='yes' bedeutet, dass er alle User nehmen soll, denen es erlaubt ist, sich in mein Newssystem(webadmin) einzuloggen(und das dürfen nur moderatoren).

$wa_user = mysql_result($dbuser, $i, "username");
$wa_pwd = mysql_result($dbpasswd, $i, "password");

Mit den beiden Variablen wa_user und wa_pwd sollen alle Datensätze ausgewertet werden. $i soll den Datensatz angeben, der zu wählen ist. Und das sollen nun mal alle Datensätze mit webadmin='yes' sein. Bitte sagt mir wenn ich mich diesbezüglich irre, ich beschäftige mich noch nicht lange mit MySQL-Datenbanken.

thx, mfg

Du bist viel zu kompliziert .. ich verstehe deinen code immer noch nicht :D

ergänze doch einfach mein beispiel um deine webadmin geschichte


$result = mysql_query("SELECT * FROM userdatenbank WHERE username='$username' AND password='$password' AND webadmin='yes'");
if (mysql_num_rows($result)) {
//daten stimmen
} else {
//daten stimmen net
}


einfacher gehts fast nicht ... muss halt nur alles 3 in einer datenbank stehen ...