Nieuwste Lid uit DB Halen.
Ik ben bezig met een nieuwe website, en nu wil ik op de homepage het nieuwste lid laten zien.
kan ik dit doen met behulp van een mysql code?
Dit is mijn Database Structuur:
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL,
`real_name` varchar(100) NOT NULL DEFAULT '',
`password` varchar(50) NOT NULL DEFAULT '-',
`mail` varchar(50) NOT NULL DEFAULT '[email protected]',
`auth_ticket` varchar(1250) NOT NULL DEFAULT '0',
`rank` int(11) unsigned NOT NULL DEFAULT '1',
`credits` int(11) NOT NULL DEFAULT '0',
`vip_points` int(11) NOT NULL DEFAULT '0',
`activity_points` int(11) NOT NULL DEFAULT '0',
`activity_points_lastupdate` double NOT NULL DEFAULT '0',
`look` varchar(100) NOT NULL DEFAULT 'hr-115-42.hd-190-1.ch-215-62.lg-285-91.sh-290-62',
`gender` enum('M','F') NOT NULL DEFAULT 'M',
`motto` varchar(50) NOT NULL,
`account_created` varchar(50) NOT NULL,
`last_online` varchar(50) NOT NULL,
`online` enum('0','1') NOT NULL DEFAULT '0',
`ip_last` varchar(120) NOT NULL DEFAULT '127.0.0.1',
`ip_reg` varchar(120) NOT NULL DEFAULT '127.0.0.1',
`home_room` int(10) unsigned NOT NULL DEFAULT '0',
`respect` int(11) NOT NULL DEFAULT '0',
`daily_respect_points` int(11) NOT NULL DEFAULT '3',
`daily_pet_respect_points` int(11) NOT NULL DEFAULT '3',
`newbie_status` int(11) NOT NULL DEFAULT '2',
`is_muted` enum('0','1') NOT NULL DEFAULT '0',
`mutant_penalty` enum('0','1','2') NOT NULL DEFAULT '0',
`mutant_penalty_expire` int(11) NOT NULL DEFAULT '0',
`block_newfriends` enum('0','1') NOT NULL DEFAULT '0',
`bb_ball` varchar(500) NOT NULL DEFAULT 'none',
`baldosas_pulsadas` int(255) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
Zou iemand me hiermee willen helpen?
Greetz Marvin
Gewijzigd op 14/12/2010 22:52:41 door Jens V
wtf is dat?
En nee. Met deze structuur is dat niet mogelijk.
Om de nieuwste lid te kunnen selecteren (met zekerheid, want id biedt je geen zekerheid) heb je een DATETIME veld nodig met daarin het tijdstip van registratie, en dit veld zie ik niet in uw tabel staan.
Karl Karl op 14/12/2010 19:38:19:
'hr-115-42.hd-190-1.ch-215-62.lg-285-91.sh-290-62',
wtf is dat?
En nee. Met deze structuur is dat niet mogelijk.
wtf is dat?
En nee. Met deze structuur is dat niet mogelijk.
Wat dat is maakt toch niet uit? En waarom zou het niet gaan? Kijk een naar mijn vorige post?
Hipska BE op 14/12/2010 19:39:20:
Om de nieuwste lid te kunnen selecteren (met zekerheid, want id biedt je geen zekerheid) heb je een DATETIME veld nodig met daarin het tijdstip van registratie, en dit veld zie ik niet in uw tabel staan.
Als je id auto_increment is is dit toch goed? Tenzij je misschien ook nog een activeersysteem gebruikt. Dan moet je ergens de datetime gaan bijhouden van de activatie. En anders, moet je gewoon een datetime gaan gebuiken. (account_created waarschijnlijk, al moet dat dan wel een datetime worden)
Gewijzigd op 14/12/2010 19:42:38 door Jens V
@Jens: Die is zo fout als dat het maar zou kunnen..
Jens V op 14/12/2010 19:39:44:
Wat dat is maakt toch niet uit? En waarom zou het niet gaan? Kijk een naar mijn vorige post?
Karl Karl op 14/12/2010 19:38:19:
'hr-115-42.hd-190-1.ch-215-62.lg-285-91.sh-290-62',
wtf is dat?
En nee. Met deze structuur is dat niet mogelijk.
wtf is dat?
En nee. Met deze structuur is dat niet mogelijk.
Wat dat is maakt toch niet uit? En waarom zou het niet gaan? Kijk een naar mijn vorige post?
Foei! Een waarde hangen aan auto increment. Auto increment zorgt er alleen voor dat je unieke waarden krijgt. Toevallig is het zo dat je bij mysql een oplopende rij cijfers krijgt (hoeft ook weer niet per se, kan met gaten, en kan tussendoor worden opgevuld).
Andere databasesystemen gebruiken zelfs letters...
Verder maakt dat wel uit. Dat duid er nog meer op dat dit een verkeerd databasemodel is. Onzin hoort niet thuis in een database.
Karl Karl op 14/12/2010 19:43:47:
Foei! Een waarde hangen aan auto increment. Auto increment zorgt er alleen voor dat je unieke waarden krijgt. Toevallig is het zo dat je bij mysql een oplopende rij cijfers krijgt (hoeft ook weer niet per se, kan met gaten, en kan tussendoor worden opgevuld).
Andere databasesystemen gebruiken zelfs letters...
Andere databasesystemen gebruiken zelfs letters...
Naar alle waarschijnlijkheid gebruikt hij MySQL, aangezien hij hulp nodig heeft met een simpele query. En auto_increment geeft ALTIJD een hogere waarde terug. Waarom denk je dat er INCREMENT staat?
Karl Karl op 14/12/2010 19:43:47:
Verder maakt dat wel uit. Dat duid er nog meer op dat dit een verkeerd databasemodel is. Onzin hoort niet thuis in een database.
Als die data zin heeft voor hem mag daar toch staan wat je wilt? Wie zegt dat dat geen gestructureerde data is? Ik kan het niet weten, maar ja. Daar gaat het hier niet om :)
Gewijzigd op 14/12/2010 19:48:45 door Jens V
ik werk met een profiel systeem.
Allemaal bedankt, met de tip van Jens is het gelukt!
Nu heb ik nog een vraag, ik wil het nieuws ook laten zien op mijn site maar dan de laatste 3, moet ik dan ook met id gaan werken?
Marvin Radioo op 14/12/2010 19:49:13:
en dat is een standaard uiterlijk.
ik werk met een profiel systeem.
Allemaal bedankt, met de tip van Jens is het gelukt!
Nu heb ik nog een vraag, ik wil het nieuws ook laten zien op mijn site maar dan de laatste 3, moet ik dan ook met id gaan werken?
ik werk met een profiel systeem.
Allemaal bedankt, met de tip van Jens is het gelukt!
Nu heb ik nog een vraag, ik wil het nieuws ook laten zien op mijn site maar dan de laatste 3, moet ik dan ook met id gaan werken?
Daarbij sorteer je best op datum. Maar uiteindelijke zou het ook met het id kunnen gaan, ja. Gewoon die LIMIT 1 verhogen....
dan moet je met LIMIT werken het kan met id maar het kan ook met datum
Dit kom je onderandere tegen als je met meerdere gelinkte database servers werkt of bij terugplaatsen van backups of een andere manier van synchroniseren.
Wat Jens je hier aanpraat is STERK af te raden, hoe dan ook zal het ooit mis gaan op die manier.
Code (php)
1
2
3
4
5
2
3
4
5
<?php $sql = "SELECT title FROM site_news ORDER BY id DESC LIMIT 3";
$query = mysql_query($sql) or die(mysql_error());
$hoeveel = mysql_result($query,0,0);
echo $hoeveel; ?>
$query = mysql_query($sql) or die(mysql_error());
$hoeveel = mysql_result($query,0,0);
echo $hoeveel; ?>
Deze gebruik ik nu.
Maar ik krijg dit:
http://i51.tinypic.com/1zmmid4.png
En het moet worden:
http://i54.tinypic.com/290uemu.png
Wie weet het antwoord.
Trouwens, dat wat het moet worden komt van een andere site.
Groetjes Marvin
Gewijzigd op 14/12/2010 19:58:03 door Marvin Radioo
Probeer eerst eens iets te doen met de nuttige reacties in dit topic en niet te gaan voor de gemakkelijkheidsoplossing.
Gewijzigd op 14/12/2010 20:01:02 door Hipska BE
?
Hipska BE op 14/12/2010 20:00:03:
Ziedaar, het gaat nu al mis.
Probeer eerst eens iets te doen met de nuttige reacties in dit topic en niet te gaan voor de gemakkelijkheidsoplossing.
Probeer eerst eens iets te doen met de nuttige reacties in dit topic en niet te gaan voor de gemakkelijkheidsoplossing.
Zoals ik al zei; voor nieuws gebruik je best een datum. Die is altijd accuraat. Voor iets triviaal als de laatste nieuwe gebruiker tonen, kan een id gebruiken geen kwaad (naar mijn inzien), maar kan dezelfde constructie gebruikt worden met een datetime veld.
Gewijzigd op 14/12/2010 20:05:15 door Jens V
@Jens, zoals ik al zei kan de database je dan niet garanderen dat het hoogste ID ook de nieuwste gebruiker is. Zie hiervoor mijn eerdere post.
Hipska BE op 14/12/2010 20:05:50:
@Jens, zoals ik al zei kan de database je dan niet garanderen dat het hoogste ID ook de nieuwste gebruiker is. Zie hiervoor mijn eerdere post.
Leg eens verder uit, als je wilt. (Ik geloof je wel hoor ;) ) Ik zou eens willen weten hoe dat komt. :)
PHPhulp: Voor idioten door idioten!.
Echt, echt echt. Ik heb er gewoon geen woorden voor.
Jens V op 14/12/2010 19:47:48:
Naar alle waarschijnlijkheid gebruikt hij MySQL, aangezien hij hulp nodig heeft met een simpele query. En auto_increment geeft ALTIJD een hogere waarde terug. Waarom denk je dat er INCREMENT staat?
Karl Karl op 14/12/2010 19:43:47:
Foei! Een waarde hangen aan auto increment. Auto increment zorgt er alleen voor dat je unieke waarden krijgt. Toevallig is het zo dat je bij mysql een oplopende rij cijfers krijgt (hoeft ook weer niet per se, kan met gaten, en kan tussendoor worden opgevuld).
Andere databasesystemen gebruiken zelfs letters...
Andere databasesystemen gebruiken zelfs letters...
Naar alle waarschijnlijkheid gebruikt hij MySQL, aangezien hij hulp nodig heeft met een simpele query. En auto_increment geeft ALTIJD een hogere waarde terug. Waarom denk je dat er INCREMENT staat?
Alsjeblieft, wees nou niet zo'n arrogant omhooggevallen kut joch. Twee mensen zeggen hier direct al dat het fout is. Als je even verder kijkt dan je neus lang is (dus niet in mysql's handleiding, of wat nouw de betekenis van een woord is (daarom vind ik je een arrogant omhooggevallen kut joch)).
Het is een ontzettend grote fout. Ik heb ergens gelezen dat je op school zit en java kan ofzo. Daaruit zou je al moeten kunnen beredeneren dat een id niet echt juist is om het nieuwste lid op te halen. Want wat zou je moeten doen als je het nieuwste lid per week wilt ophalen? Dat kan niet met je leuke 'gebruik toch die id' theorie
Het is zo zonde dat MySQL zoveel wordt gebruikt. Want het heeft zoveel fouten. Alleen al met auto increment:
Auto increment.
Dingen die je moet weten over databases # records kennen geen volgorde.
De auto increment functie is een verhaal apart, daarom een hoofdstuk apart.
De slechte punten van MySQL op een rijtje # geen getal uit auto increment zonder een record in te voeren.
De slechte punten van Mysql op een rijtje # slechts één auto increment kolom per tabel.
De slechte punten van mysql op een rijtje # auto increment slechts in een tabel tegelijk te gebruiken.
En nu zal je waarschijnlijk gaan zeiken dat dit allemaal van dezelfde website komt. Inderdaad, maar wat je waarschijnlijk niet weet is dat achter deze websites database guru's zitten. Die voor hun dagelijks werk met databases werken. En als je dus een beetje verder kijkt, dan zul je inderdaad vaker zien dat je auto increment niet op deze manier moet gebruiken.
Volgens mij stond het zelfs in de manual van mysql dat het alleen maar een rijtje getallen genereert.
Jens V op 14/12/2010 19:47:48:
Als die data zin heeft voor hem mag daar toch staan wat je wilt? Wie zegt dat dat geen gestructureerde data is? Ik kan het niet weten, maar ja. Daar gaat het hier niet om :)
Karl Karl op 14/12/2010 19:43:47:
Verder maakt dat wel uit. Dat duid er nog meer op dat dit een verkeerd databasemodel is. Onzin hoort niet thuis in een database.
Als die data zin heeft voor hem mag daar toch staan wat je wilt? Wie zegt dat dat geen gestructureerde data is? Ik kan het niet weten, maar ja. Daar gaat het hier niet om :)
Als die data zin zou hebben (heb sterk mijn twijfels, ook als ik naar de rest kijk van deze entiteit), dan zou het een zinnige naam moeten hebben.
Deze onzin wijst, zoals ik al eerder heb aangegeven heb, op een verkeerd databasemodel. Dat betekend dat de TS-er gemakkelijk in de problemen kan raken door de onzin die hij heeft. Als hij in de problemen zit, dan komt hij hier terecht.
Verder weet hij niet hoe hij de laatste gebruiker kan opzoeken (jij ook niet), wat er ook nog eens op wijst dat hij niet erg veel verstand heeft van databases. Daarom zou hij dus beter eerst eens kunnen leren hoe je daar precies mee om moet gaan (jij misschien ook?)
Edit:
Marvin Radioo op 14/12/2010 20:00:25:
?
Je hebt vingers gekregen om mee te tikken. Tik dan ook wat zinnigs.
Jens V op 14/12/2010 20:04:28:
Zoals ik al zei; voor nieuws gebruik je best een datum. Die is altijd accuraat. Voor iets triviaal als de laatste nieuwe gebruiker tonen, kan een id gebruiken geen kwaad (naar mijn inzien), maar kan dezelfde constructie gebruikt worden met een datetime veld.
Hipska BE op 14/12/2010 20:00:03:
Ziedaar, het gaat nu al mis.
Probeer eerst eens iets te doen met de nuttige reacties in dit topic en niet te gaan voor de gemakkelijkheidsoplossing.
Probeer eerst eens iets te doen met de nuttige reacties in dit topic en niet te gaan voor de gemakkelijkheidsoplossing.
Zoals ik al zei; voor nieuws gebruik je best een datum. Die is altijd accuraat. Voor iets triviaal als de laatste nieuwe gebruiker tonen, kan een id gebruiken geen kwaad (naar mijn inzien), maar kan dezelfde constructie gebruikt worden met een datetime veld.
TRIVIAALS? WTF! Jezus christus. Ik geloof mijn ogen niet.
Jij moet je echt diep schamen.
Stel je voor dat dit een bedrijf is. En die heeft werknemers. Is het dan TRIVIAAL hoe lang iemand in dienst is??!?!?!?
Jens V op 14/12/2010 20:07:49:
Leg eens verder uit, als je wilt. (Ik geloof je wel hoor ;) ) Ik zou eens willen weten hoe dat komt. :)
Hipska BE op 14/12/2010 20:05:50:
@Jens, zoals ik al zei kan de database je dan niet garanderen dat het hoogste ID ook de nieuwste gebruiker is. Zie hiervoor mijn eerdere post.
Leg eens verder uit, als je wilt. (Ik geloof je wel hoor ;) ) Ik zou eens willen weten hoe dat komt. :)
Waarom dan? Waarom dan? Waarom dan? Waarom dan? Waarom dan?
Lijkt wel alsof je dit doet. En dat doen kleuters.
Kunnen we nu met logica stellen dat jij een kleuter bent? Ik vind van WEL!
ik heb geen zin om dat te lezen maar soms vind ik dat je wel gelijk hebt karl
Maar wat kan ik nu gebruiken als code?