Avatar billede TumseMM Nybegynder
20. november 2011 - 21:16 Der er 1 kommentar og
1 løsning

Ranking system, reset hver uge, og hver måned echo månedens vinder!

Hej eksperter!

Har et ranking system hvor top 10 brugere er, dem med bedst gennemsnit :)
Det fungerer perfekt, men kunne godt tænke mig, at hver uge blev top 10 resettet :) Samt hver måned blev den bruger med bedst gennemsnit echo ud på siden :)??

Hvordan gør man det?

Er det ikke noget i den her stil:


<table style="border-collapse: collapse; border: solid green">
   
    <tr>
       
        <th>Placering:</th>
        <th>Bruger:</th>
        <th>Avg. rating:</th>
   
   
    </tr>';
}
?>
<?php

function getsuffix($i)
{

$suffixes = array("th", "st", "nd", "rd");

  $suffix = (array_key_exists($i, $suffixes)? $suffixes[$i]: $suffixes[0]);

  return $i.$suffix;
}
        $last_sunday = date('Y-m-d 23:59:59', strtotime('last Sunday'));
        $last_week_monday = date('Y-m-d 0:0:0', strtotime('last Sunday')-604800+86401);
       
            $res_avg = mysql_query("SELECT username, AVG(rating) as avg_rating FROM ratings WHERE time >= '$last_week_monday'and time <= '$last_sunday' GROUP BY username ORDER BY avg_rating DESC LIMIT 10 ");
            for($i = 1; $row_avg = mysql_fetch_array($res_avg); $i++)     
                   
                    echo'
                               
                                        <tr>
                                            <td><text style="color:pink">'.getsuffix($i).'</text></td>
                                            <td><text style="color:white">'. $row_avg['username'].' = </text></td>
                               
                                            <td>&nbsp;<u>'.round($row_avg['avg_rating'],1).'</u><td>
                                        </tr>
                                       
                    ';



echo'</table>
</div>';



?>



Hvordan får jeg det til at virke ??

Ligemeget om der er nogen der har skrevet, så viser den ikke noget i ranking systemet, nu hvor jeg har indsat : WHERE time >= '$last_week_monday'and time <= '$last_sunday'

Sætter pris på alt form for hjælp!
Avatar billede jakobdo Ekspert
22. november 2011 - 08:32 #1
Prøv at udskrive dine variabler:

$last_sundday
$last_week_monday
Din SQL:
"SELECT username, AVG(rating) as avg_rating FROM ratings WHERE time >= '$last_week_monday'and time <= '$last_sunday' GROUP BY username ORDER BY avg_rating DESC LIMIT 10 "

indeholder de det forventede?
Avatar billede TumseMM Nybegynder
11. februar 2013 - 21:54 #2
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester