Registreer FAQ Berichten van vandaag


Ga terug   Scholieren.com forum / Technologie / Software & Hardware
Reageren
 
Topictools Zoek in deze topic
Oud 11-07-2002, 19:36
pietdepiet
pietdepiet is offline
ik heb nu dit:
PHP-code:
<? 
$rank = 1;
$query2 = "SELECT * FROM members ORDER BY posts DESC LIMIT 10"; 

$resultaat2 = mysql_query($query2); 
while ($record = mysql_fetch_object($resultaat2)) { 
echo "$rank | $record->user | $record->posts<br>\n";
$rank++ 


echo "<br>" 

$query3 = "SELECT * FROM members WHERE posts > $posts - 20 AND posts < $posts + 20 ORDER BY posts ASC"; 

$resultaat3 = mysql_query($query3); 
while ($record1 = mysql_fetch_object($resultaat3)) { 
echo "$record1->user | $record1->posts<br>\n"; 

?>
dit zou dus de top 10 mensen met meeste posts moeten selecteren en de 40 mensen rond jou, alleen ik heb 2 problemen
1: hoe zet ik ervoor hoeveelste de persoon is, bij de 40 personen rond jou (iets met SELECT count(*) AS aantal FROM members WHERE... ofzo??)
2: als iemand in de top 30 staat ziet hij 2 keer de personen in de top 10

hoe los ik dit op?

(het gaat niet om de lay-out)
__________________
Het kost een placenta, maar dan heb je ook iets
Met citaat reageren
Advertentie
Oud 11-07-2002, 20:04
Verwijderd
1: Is er geen mogelijkheid om het rec_id op te vragen ofzo? Of je houdt een tellertje bij, en vergelijkt de user uit te database met de persoon die is ingelogd
2: Wat bedoel je?

Laatst gewijzigd op 11-07-2002 om 20:06.
Met citaat reageren
Oud 11-07-2002, 20:04
Cool_D
Avatar van Cool_D
Cool_D is offline
Ik snap echt nog nix van PHP
__________________
Losing is life's way of saying...you suck
Met citaat reageren
Oud 11-07-2002, 20:07
pietdepiet
pietdepiet is offline
Citaat:
eddie schreef:
1:
PHP-code:
$query3*=*"SELECT***FROM*members*WHERE*posts*BETWEEN $posts*-*20*AND*$posts*+*20*ORDER*BY*posts*ASC";

$resultaat3*=*mysql_query($query3);*
$teller 
1;
while*($record1*=*mysql_fetch_object($resultaat3))*{*
echo*
"$teller$record1->user*|*$record1->posts<br>\n";*
$teller 
$teller 1;
}

2: Wat bedoel je?


ik bedoelde dus dat als bijv iemand 600ste staat en hij op ranks dit ziet:

1 bla
2 bla
3 bla
..
10 bla

580 bla
581 bla
582 bla
583 bla
584 bla
..
600 de persoon in kwestie
..
619 bla
620 bla
__________________
Het kost een placenta, maar dan heb je ook iets
Met citaat reageren
Oud 11-07-2002, 20:13
Verwijderd
Citaat:
pietdepiet schreef:


ik bedoelde dus dat als bijv iemand 600ste staat en hij op ranks dit ziet:
Moet je eerst weten welke persoon dat is en hoeveel posts die heeft, en dat in je select statement kenbaar maken:
PHP-code:
$query4*=*"SELECT posts FROM members WHERE user = $user";*
$resultaat4*
=*mysql_query($query4);
$record4*=*mysql_fetch_object($resultaat4)*

$query3*
=*"SELECT***FROM*members*WHERE*posts*>*$record4->posts*-*20*AND*posts*<*$record4->$posts*+*20*ORDER*BY*posts*ASC";
Met citaat reageren
Oud 11-07-2002, 20:16
pietdepiet
pietdepiet is offline
Citaat:
eddie schreef:

Moet je eerst weten welke persoon dat is en hoeveel posts die heeft, en dat in je select statement kenbaar maken:
jaja, dat heb ik eerder in het script al gedaan (de persoon logt in), maar hoe krijg ik dan zijn rank ervoor
__________________
Het kost een placenta, maar dan heb je ook iets
Met citaat reageren
Oud 11-07-2002, 20:22
Verwijderd
Citaat:
pietdepiet schreef:
jaja, dat heb ik eerder in het script al gedaan (de persoon logt in), maar hoe krijg ik dan zijn rank ervoor
Hoe het in PHP moet weet ik niet, maar ik zal je even de FoxPro code geven
Code:
SET ORDER TO posts IN members
LOCATE FOR user = cUser IN members
nRank = RECNO( "members" )
met set order to wordt de volgorde aangegeven hoe de tabel wordt gesorteerd.
locate for is een instructie die de record-pointer verschuift naar het goede record. Met RECNO() kan het recordnummer (en dus de rank) worden opgevraagd.

Maar hoe dit in PHP moet...
Met citaat reageren
Oud 11-07-2002, 20:25
pietdepiet
pietdepiet is offline
hmmm, FoxPro ken ik niet
__________________
Het kost een placenta, maar dan heb je ook iets
Met citaat reageren
Oud 11-07-2002, 20:28
Verwijderd
[omslachtige manier]
- selecteer de gehele user in een nieuwe tabel, gesorteerd op posts
- loop de nieuwe tabel door en houdt een tellertje bij totdat je bij de juiste persoon bent
[/omslachtige manier]
Met citaat reageren
Oud 11-07-2002, 20:31
pietdepiet
pietdepiet is offline
Citaat:
eddie schreef:
[omslachtige manier]
- selecteer de gehele user in een nieuwe tabel, gesorteerd op posts
- loop de nieuwe tabel door en houdt een tellertje bij totdat je bij de juiste persoon bent
[/omslachtige manier]
tja maar dat is een beetje sloom, vooral als je veel members hebt
__________________
Het kost een placenta, maar dan heb je ook iets
Met citaat reageren
Oud 11-07-2002, 21:44
Verwijderd
ja, maar zolang je geen andere manier hebt...
Met citaat reageren
Oud 11-07-2002, 22:09
Jon
Avatar van Jon
Jon is offline
1: Ranking voor een user met een bepaald aantal posts kun je oplossen door te tellen hoeveel personen meer posts hebben en dan plus 1 (de user zelf), dus: SELECT COUNT(*)+1 FROM members WHERE posts > $postaantalvanuser.

2: Filteren op user doe je met GROUP BY username.
__________________
Wer nicht fragt bleibt dumm.

Laatst gewijzigd op 11-07-2002 om 22:26.
Met citaat reageren
Advertentie
Reageren


Regels voor berichten
Je mag geen nieuwe topics starten
Je mag niet reageren op berichten
Je mag geen bijlagen versturen
Je mag niet je berichten bewerken

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit

Spring naar


Alle tijden zijn GMT +1. Het is nu 07:36.