Nachhilfe in SQL: Daten aus mysql_fetch_array herausholen

Alles, was MariaDB und MySQL betrifft, kann hier besprochen werden.

Nachhilfe in SQL: Daten aus mysql_fetch_array herausholen

Postby axel3 » 21. July 2004 21:43

Moin:
Kleine SQL-Anfängerfrage:
Ich möchte aus der Tabelle "benutzer" die benutzer_id des Benutzers erhalten, dessen login_name $a ist.
Soweit kein Problem.

$a = $_POST["AnmeldeName"];
$abfrage = "SELECT benutzer_id,nachname FROM benutzer WHERE login_name = '$a'";
$ergebnis = mysql_query($abfrage);
while($daten = mysql_fetch_array($ergebnis))
{
echo "ID".$daten['benutzer_id']." Name= ".$daten['nachname'];
echo "<BR>";
}

Er spuckt mir schön die ID und den Namen des Benutzers aus.

Nun will ich mit der $daten['benutzer_id'] weiterarbeiten.
WIE komm ich an diese Variable nun wieder dran?

Oder geht es auch irgendwie einfacher, denn jede benutzer_id ist nur einmal vergeben. Also einfacher ohne while oder so...

Ach ja, und welche @~+#!!! Syntax müsste ich benutzen, um bei WHERE login_name = '$a'" direkt $_POST["AnmeldeName"] einzutragen ?...
Gruß:
Axel3
User avatar
axel3
 
Posts: 20
Joined: 21. July 2004 07:00

Postby Wiedmann » 21. July 2004 23:45

Nun will ich mit der $daten['benutzer_id'] weiterarbeiten.
WIE komm ich an diese Variable nun wieder dran?

Bei jedem Schleifendurchlauf wird $daten neu mit dem jeweilige Ergebnis von mysql_fetch_array() gesetzt. Im letzten Schleifendurchlauf liefert diese Funktion "false". Sprich, nach der Schleife hast du false in $daten stehen.

Du müsstest also $daten innerhalb der Schleife bei jedem Durchlauf einem weiteren Array hinzufügen. Oder gleich in der while-Bedingung aus $daten ein Array machen das bei jedem Durchlauf erweitert wird.

denn jede benutzer_id ist nur einmal vergeben

Wie oft die Benutzer-ID vorhanden ist, ist ja hier uninteressant --> du frägst ja nach dem "login_name".

Also einfacher ohne while oder so...

Wenn du eh schon weist das nur ein Datensatz kommen kann, dann lass halt die Schleife weg und weise das Ergebnis von mysql_fetch_array() direkt $daten zu. (mit LIMIT 1 kanst du auch dafür sorgen das garantiert nur einer kommt...):
$daten = mysql_fetch_array($ergebnis);

$daten enthält dann die Daten von dem einen/ersten Datensatz der geliefert wird.

Ach ja, und welche @~+#!!! Syntax müsste ich benutzen, um bei WHERE login_name = '$a'" direkt $_POST["AnmeldeName"] einzutragen ?...

Auch wenn das bestimmt nicht die beste Idee ist ohne Prüfung solche Werte direkt für die Datenbank zu benutzen:
Code: Select all
$abfrage = "SELECT `benutzer_id`, `nachname` FROM `benutzer` WHERE `login_name` = '$_POST[AnmeldeName]' LIMIT 1";
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

hat gut geholfen.

Postby axel3 » 22. July 2004 07:06

Moin, Wiedmann:
Das war genau das Richtige!
Danke!
User avatar
axel3
 
Posts: 20
Joined: 21. July 2004 07:00


Return to MariaDB - MySQL

Who is online

Users browsing this forum: No registered users and 4 guests