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;
   }
?>


Hij geeft een leeg result aan.
Nou, ik wil graag de laast geregistreerde user op mijn index laten zien.
En dat is maar 1 user en dus hoef je nooit meer dan 1 record op te vragen.

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.
Daar valt helemaal niets algemeens over te zeggen, je hebt die records nodig die je wilt en kunt verwerken. 100.000 records waar vrijwel niets in staat, stelt niets voor, 100 records met 1GB aan data in deze records, dat stelt een hele berg voor. Aantallen zeggen niet zo heel erg veel, doe daar dan ook geen algemene uitspraken over.
pgFrank schreef op 01.01.2009 20:14
100.000 records waar vrijwel niets in staat, stelt niets voor, 100 records met 1GB aan data in deze records, dat stelt een hele berg voor.


pgFrank schreef op 05.12.2008 23:07

1 GB is een kleine database, dat stelt niet zo heel veel voor.

Het is opgelost, en Frank, de website is voor een clan, dus het zal hoogstens 30 tot 50 records hebben.

Ik heb een colom gemaakt genaamd: ID, en auto increment gedaan
Dus de nieuwste record zal het hoogste cijfer hebbe.

Toen heb de functie zodanig aan gepast:

SELECT username FROM ".TBL_USERS." ORDER BY 'id' DESC LIMIT 1

En nu werkt het. Bedankt voor de replies.
Stefan schreef op 01.01.2009 22:04

Ik heb een colom gemaakt genaamd: ID, en auto increment gedaan
Dus de nieuwste record zal het hoogste cijfer hebbe.


Nee hoor. Je kunt maar 1 ding over een ID zeggen en dat is dat het uniek is. Verder kun je er helemaal niks over zeggen.

De enige manier om dus het nieuwste lid op te vragen is door de registratie datum en tijd op te slaan.
Blanche heeft de juist oplossing allang gegeven
Ik ga niet de registratie datum en tijd opslaan, omdat ik 25 mensen niet opnieuw wil laten registreren.

the column naam is ID, en type = int. auto_increment dr op werkt perfect.
Stefan schreef op 02.01.2009 00:09
Ik ga niet de registratie datum en tijd opslaan, omdat ik 25 mensen niet opnieuw wil laten registreren.

the column naam is ID, en type = int. auto_increment dr op werkt perfect.


Nu nog wel ja, wacht maar af
PHP Newbie schreef op 01.01.2009 21:19
[quote='pgFrank schreef op 01.01.2009 20:14']100.000 records waar vrijwel niets in staat, stelt niets voor, 100 records met 1GB aan data in deze records, dat stelt een hele berg voor.


pgFrank schreef op 05.12.2008 23:07

1 GB is een kleine database, dat stelt niet zo heel veel voor.

[/quote]
;)

"database" en "record" zijn 2 verschillende dingen... En over het algemeen staan in er in 1 database meerdere records. En wanneer je dan per record 1 GB aan data hebt, kan het vrij snel oplopen. 100 records per iedere 1 GB aan data levert al 100GB aan data op. 1 query die even deze 100 records ophaalt, zal al vrij snel problemen opleveren, ik heb bv. even geen 100GB aan RAM ter beschikking. Dat wordt dus swappen, een goede performance kun je dan wel vergeten.

In huis-tuin-en-keuken applicaties zul je niet snel records van 1GB hebben, dat scheelt dan weer.
Ik wil al zeggen: wat voor data (dat in een database moet) is nu 1 gb?
Complete films etc ga je toch ook niet opslaan in database, maar een href naar het bestand?
@Eddy: Ligt volledig aan de toepassing, het kan heel handig zijn om complete opnames (film of foto) in de database op te slaan, je kunt dan de database allerlei vergelijkingen e.d. laten doen. Zo zijn voor PostgreSQL toepassingen gebouwd die röntgenfoto's en MRI-scans met elkaar vergelijken. Door deze vergelijkingen binnen de database te toen (met stored procedures in Java of C) kun je dan nog een hele behoorlijke performance behalen. Wanneer je vergelijkingen moet doen op data, zul je de data wel tot je beschikking moeten hebben en moet het dus in de database staan.

Wanneer je de opname alleen ergens wilt gaan tonen, dan is opslaan van het pad de beste aanpak.

Reageren