Hoi PHPers 8-).
Ik heb een tijdje niks van me laten horen, dit omdat ik even ben wezen expirimenteren met PHP (zonder MySQL).

Ik ben nu echter bezig met iets, en heb een vraag:
Als je een registreersysteem hebt, hoe laat je dan de 3 nieuwste gebruikers zien?
Ik weet dat je de hoogste IDs nodig hebt (bijv. 5, 4 en 3) en dat het waarschijnlijk met de COUNT functie (DSC ofzo) moet doen.
Want hij moet de IDs van hoog naar laag tellen.
Maar als je dan gebruikt:

<?php
$sql = "
    SELECT COUNT(id) DSC id
    FROM gebruikers
";

if(!$res = mysql_query($sql))
{
    trigger_error(mysql_error().'<br />In query: '.$sql);
}
else
{
    $row = mysql_fetch_assoc($res);
    echo $row['naam'];
}
?> 


Wat moet ik doen dat de hoogste 3 IDs (5, 4, 3) worden weeergegeven?

Alvast bedankt,
Jeroen
$sql = "
SELECT COUNT(id) DSC id
FROM gebruikers
ORDER BY id DESC
LIMIT 3
";
Dat kan wel,
ik heb dat ding even snel getypt dus kan best een typfoutje zijn ;)
jelle, dit is niet helemaal de bedoeling.

nu krijg je 3 te zien.. wat ook al in je limit staat.. beetje overbodig dus.
Dus ik snap hieruit dat dat niet zal werken..?
Wes, hij wou toch met die query 3 mensen weergeven.
Nou dan zal hij een limit moeten gebruiken.
Of 2 query's met de ene de count en de andere dat data ophalen.
Ik zie weer eens wat nieuwe dingen en kom dr weer is niet uit :S

Zouden jullie me kunnen helpen?

<?php

$sql = "
SELECT COUNT(id) DSC id, naam
FROM gebruikers
ORDER BY id DESC
LIMIT 3
";

if(!$res = mysql_query($sql))
{
    trigger_error(mysql_error().'<br />In query: '.$sql);
}
else
{
    $row = mysql_fetch_assoc($res);
    echo $row['naam'];
	echo $row['naam'];
	echo $row['naam'];
}
?>


Ik zou niej wete wat er fout is.
Dit is btw de foutmelding op de site
"Notice: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'id, naam FROM gebruikers ORDER BY id DESC LIMIT 3' at line 1
In query: SELECT COUNT(id) DSC id, naam FROM gebruikers ORDER BY id DESC LIMIT 3 in /usr/export/www/vhosts/funnetwork/hosting/frosting/index.php on line 73"
SELECT COUNT(id) DSC id,

wat moet die DSC daar?
Staan ^^
Nee, kheb um weggehaald maar nu zie ik iets wat ik nog nooit bij mij heb gezien (na al die interne errors lol):
Notice: Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause
In query: SELECT COUNT(id) id, naam FROM gebruikers ORDER BY id DESC LIMIT 3
Wat is dit voor query?

SELECT COUNT(id) DSC id, naam
FROM gebruikers
ORDER BY id DESC
LIMIT 3

1) Wat is DSC ?
2) Waar is de GROUP BY
3) Sorteren op niks levert niks op, een id is niks.
4) Niks tellen, levert natuurlijk ook niks op. Tel op de naam, dan heb je ook geen GROUP BY nodig
5) LIMIT 3, wanneer je maar 1 rij retour krijgt, is wat overdreven.
6) Sorteren op 1 rij is eveneens overdreven, je kunt van boven naar beneden of van links naar rechts sorteren, 1 resultaat zal altijd dezelfde sortering opleveren...

Kortom, ik snap het niet of de query klopt helemaal niks van.

Voorstel:

SELECT COUNT(*) AS aantal FROM gebruikers;

Reageren