22. november 2005 - 17:56
Der er
23 kommentarer og 1 løsning
Top 10 brugere ?
Hvordan laver man en top 10 ? ligsom her på eksperten hvor den sortere efter fx point
Annonceindlæg fra HP
22. november 2005 - 17:57
#1
SELECT brugernavn FROM brugertabel ORDER BY point DESC LIMIT 10 ?
22. november 2005 - 17:59
#2
Vidste ikke det var så enkelt ? :) Hvad så med alle dem der ingen point har ? hvad bliver de sorteret efter ?
22. november 2005 - 18:00
#3
Dit point-felt er vel int som type - altså tal? Og så vil det felt jo have en standard-værdi, f.eks. 0 normalt, som den så bare vil sortere efter.
22. november 2005 - 18:01
#4
Ja selvfølgelig er det int :) Så det du siger er at php ordner det selv ?
22. november 2005 - 18:21
#5
Og hvordan kan man så senere hen finde ud af hvilken placering en bestemt person har ? - læg da lige et svar ;)
22. november 2005 - 18:33
#6
PHP ordner det ikke selv, det gør SQL/MYSQL.
22. november 2005 - 18:37
#7
Okay, tusinde tak :) Ved du noget om det andet jeg spurgte om ? 22/11-2005 18:21:28
22. november 2005 - 18:40
#8
Placering må blive: SELECT COUNT(*) + 1 FROM tabel WHERE point > $point
22. november 2005 - 18:41
#9
COUNT(*)+1 AS placering er nok bedre.
22. november 2005 - 18:43
#10
Hey hmortensen, vil det sige at jeg skal oprette et felt i phpmyadmin der hedder placering eller ? og hvad skal det være varchar,int,.. ?
22. november 2005 - 18:46
#11
Nej, du skal ikke oprette et felt. SQL ordet 'AS' laver et alias for det forestående, i det her tilfælde COUNT(*)+1
22. november 2005 - 18:50
#12
Så det vil sige at jeg kun skal gøre følgene: <? include "mysql.php"; $query = mysql_query("COUNT(*)+1 AS placering"); WHILE($placering = mysql_fetch_array($query)) { echo $placering; } ?> ?
22. november 2005 - 18:51
#13
Nej, du skal have hele sætningen med, som i min første kommentar
22. november 2005 - 18:51
#14
<? include "mysql.php"; $query = mysql_query("SELECT COUNT(*)+1 AS placering FROM tabel WHERE point > $point"); WHILE($placering = mysql_fetch_array($query)) { echo $placering; } ?> er det korrekte.
22. november 2005 - 18:52
#15
Og så echo $placering['placering'];
22. november 2005 - 18:55
#16
Tak alle sammen :) men hvordan skal jeg indsætte det når jeg allerede har udtrukket noget på den måde, bare sådan her?: <? include "mysql.php"; $s_medlemmer = mysql_query("SELECT id,brugernavn,point,dato FROM brugere ORDER BY point DESC"); WHILE($medlemmer = mysql_fetch_array($s_medlemmer)) { $query = mysql_query("SELECT COUNT(*)+1 AS placering FROM brugere WHERE point > $point"); WHILE($placering = mysql_fetch_array($query)) { echo "<tr>"; echo "<td width=\"150\"><center><a href=\"profil.php?id=$medlemmer[id]\">$medlemmer[brugernavn]</a></center></td>"; echo "<td width=\"150\"><center>$medlemmer[dato]</center></td>"; echo "<td width=\"150\"><center>$placering</center></td>"; echo "<td width=\"150\"><center>$medlemmer[point]</center></td>"; echo "</tr>"; } } ?>
22. november 2005 - 19:05
#17
Nu blander du jo spm1 sammen med spm2.
22. november 2005 - 19:06
#18
Så for i bare 30 point ekstra ? :)
22. november 2005 - 19:07
#19
Ikke point jeg mener, men din kode.
22. november 2005 - 19:11
#20
Nårh, ja, men læg mærke til hvad jeg skriver, jeg skal lave 2 udtræk :) 1. udtræk: for at skrive point antallet,skrive navnet og tilmedlingsdato 2. udtræk for at lave placeringen, eller er dette ikke nødvendigt ? hvis du kan bixe det samme i en lang query ville jeg blive super duper glad :)
22. november 2005 - 19:13
#21
"Og hvordan kan man så senere hen finde ud af hvilken placering en bestemt person har ?" Har jo ikke noget med din top 10 at gøre. Hvis du vil ha placering på top 10'en, så lav en tæller i din while løkke.
22. november 2005 - 19:15
#22
Det jeg mener med placering er at hvis man går ind på en eller anden profil står der fx 7 (dvs han er i Top 10) håber du forstår. Hvordan kan sådan en tæller se ud ? :)
22. november 2005 - 19:18
#23
$s_medlemmer = mysql_query("SELECT id,brugernavn,point,dato FROM brugere ORDER BY point DESC"); $placering = 1; while ($medlemmer = mysql_fetch_array($s_medlemmer)) { echo "<tr>"; echo "<td width=\"150\"><center><a href=\"profil.php?id=$medlemmer[id]\">$medlemmer[brugernavn]</a></center></td>"; echo "<td width=\"150\"><center>$medlemmer[dato]</center></td>"; echo "<td width=\"150\"><center>$placering</center></td>"; echo "<td width=\"150\"><center>$medlemmer[point]</center></td>"; echo "</tr>"; $placering++; } Og så kan du bruge den anden sql sætning til at skrive placering på profil siden.
22. november 2005 - 19:26
#24
Jamen på profil siden er det det samme profil, der har jeg også allerede udtrukket noget :( hvad skal jeg så gøre ?
Vi tilbyder markedets bedste kurser inden for webudvikling