Nou, ik wil graag de laast geregistreerde user op mijn index laten zien.
Heb ik de volgende functie voor gebouwd, maar hij werkt niet 100%
Functie:
<?php //Hier niet opletten, is alleen voor de kleur
Function getLastReg(){
$q = "SELECT LAST(username) FROM users";
$res = mysql_query($q, $this->connection) OR die(mysql_error ());
return $res;
}
?>
Je vergeet dan ook om het resultaat te fetchen met bijvoorbeeld [php]mysql_fetch_assoc[/php]()...
ps. Of heb je dat soms in een ander deel van je script staan?
pps. Overigens zal die query ook niet het juiste resultaat opleveren. Het selecteren van de laatst geregistreerde gebruiker doe je door aflopend te sorteren op het tijdstip van registratie en dan het eerste record te selecteren:
SELECT
username
FROM
users
ORDER BY
registratie_tijdstip DESC
LIMIT
1
En wat is jouw definitie van 'laatste record'. Ga maar eens een backup terug zetten, het laatste record zal dan ineens niet meer de laatst geregistreerde gebruiker bevatten.
De enige juiste manier om de laatst geregistreerde gebruiker te selecteren is het sorteren op tijdstip van registratie. Dat is de enige methode die je zekerheid over je resultaten geeft...
Dus hier komt uit dat je op de registreerdatum moet filteren. En als je dan met DESC (aflopend) in je sql een query draait en het laatste resultaat oppakt heb je dus de laatst geregistreerde gebruiker
Oftewel, het record met de laatste registratiedatum zal het eerst in de resultaat set zitten. Als je dan met LIMIT de resultaatset beperkt tot 1 record, heb je per definitie het laatste record...
Zekerheid! Zonder LIMIT haal je alle records op en moet je in PHP nog maar zien dat je het juiste record gebruikt. Selecteer je één enkel record, dan heb je in PHP ook meer 1 record om mee te werken.
Het verkleint de kans op bugs in je script en versnelt bovendien de query omdat er maar 1 record geselecteerd hoeft te worden. Wat is immers het nut om mogelijk een paar miljoen records op te halen als je er maar 1 nodig hebt?
En bovendien, waarom 0,1 seconde wachten als het ook in 0,01 seconde kan? Een overdreven voorbeeldje: Voer 100 van dat soort queries uit en je hebt een script dat al 10 seconden de tijd nodig heeft om met de database te praten terwijl je het ook in 1 seconde af had kunnen handelen.
Je moet hier absoluut LIMIT gebruiken. Zonder LIMIT selecteer je een hele lijst met records en dat is volledig nutteloos. Een gemiddelde website die enigszins goed loopt heeft tienduizenden of honderdduizenden records in een tabel en dan moet je echt nooit een query zonder LIMIT doen.