Seite 1 von 2
user_id ausgeben
Verfasst: 02.12.2006 14:05
von deathcakeman
Hallo.
und zwar. Ich habe eine Benutzerschnittstelle.
Jetzt will ich eine Userliste machen.
Dazu muss ich die letzte user_id aus der DB auslesen.
-->wie funktioniert das?
Verfasst: 02.12.2006 14:18
von Dr.Death
Ermitteln des letzten ( newest ) User:
Code: Alles auswählen
$sql = "SELECT user_id, username
FROM " . USERS_TABLE . "
WHERE user_id <> " . ANONYMOUS . "
ORDER BY user_id DESC
LIMIT 1";
Verfasst: 02.12.2006 14:23
von deathcakeman
hä?
ich hab das irgendwie nicht gerafft.
was macht das anonymus?
ps.
dieser code ist NICHT für phpbb.
Verfasst: 02.12.2006 15:45
von Pyramide
Es gibt bei Datenbanken keinen "letzten" Datensatz. Wenn du "den gerade eingefügten Datensatz" meinst, dann suchst du [php:mysql_insert_id], wenn du "den höchsten Wert der Spalte user_id aus allen Datensätzen" meinst, dann suchst du die SQL Funktion max().
Verfasst: 03.12.2006 13:54
von deathcakeman
so ich hab nochmal bissle im netz geschaut und das hier zusammen bekommen^^
Code: Alles auswählen
$abfrage = mysql_query("SELECT MAX(user_id) FROM login");
$aa=mysql_fetch_row($abfrage);
echo $aa;
jetzt gibt der mir aber nur "Array" zurück...was hab ich falsch gemacht?
Verfasst: 03.12.2006 13:59
von Dr.Death
Hi, ich noch mal....
Zu dem Code den ich oben bereits gepostet habe.
Hier die Erklärung:
Die "höchste" User ID ist gleichzeitig der neueste User.
Einfachster Weg diese ID zu ermitteln ist ein Select auf alle User in Absteigender Reihenfolge.
Da die erste gelieferte ID bereits unsere gesuchte ID ist ( die höchste ID ) setzen wir ein Limit von 1.
Der Anonymous muss nicht unbeding da rein... ist nur eine Angewohnheit

Verfasst: 03.12.2006 14:10
von deathcakeman
hä?
sry aber kannst du es nochma für "dumme"^^ machen?
was is an meinem codeschnippsel eigetnlich so falsch?
geht das in "der art und weise" nicht?
Verfasst: 03.12.2006 14:37
von BB-BF-BM
deathcakeman hat geschrieben:so ich hab nochmal bissle im netz geschaut und das hier zusammen bekommen^^
Code: Alles auswählen
$abfrage = mysql_query("SELECT MAX(user_id) FROM login");
$aa=mysql_fetch_row($abfrage);
echo $aa;
jetzt gibt der mir aber nur "Array" zurück...was hab ich falsch gemacht?
probier mal print_r($aa); dann siehst du, was du machen musst

[php:mysql_fetch_row]
Verfasst: 03.12.2006 14:46
von deathcakeman
Array ( [MAX(user_id)] => 3 )
bekomme ich zurück...yes..danke man.....
und die "3" ist jetzt in der var $aa drinne?
asso ich muss da jetzt nix mit machen, sondern kann das einfach in den code einbauen?
Verfasst: 03.12.2006 16:04
von gn#36
In der SQL Abfrage können ja normalerweise mehrere Spalten abgefragt werden, dementsprechend wird das Ergebnis als Array zurückgeliefert.
Du musst also auf das passende Feld des Arrays zugreifen und bekommst deine ID:
Code: Alles auswählen
$abfrage = mysql_query("SELECT MAX(user_id) AS uid FROM login");
$array = mysql_fetch_row($abfrage);
$aa = $array['uid'];
echo $aa;
Oder Zugriff über $aa['MAX(user_id)'] vermutlich...