开发者

dispaying top 10 players and monthly top 10 players using php mysql

I am currently working for a highscore system for my games website. and i have written the code for that. it only displays 1- players. i want to display overall top players when i click on top players url and want to display the monthly top 10 players when i click on monthly top players url.How to do this. i am trying since 2 days. i am struck at this point. kindly do look into this. the code as follows. For reference kindly look inot this. i need like this. any ideas.. http://www.gamesheep.com/highscores.php?id=the-champions-3d-game&table=w

<?php
include_once("_data.php");

$game_name = "test";
$db_table = "newhs_" . $game_name;

$conn = mysql_connect($db_host, $db_user, $db_pass);
mysql_select_db($db_name, $conn);

// Alltime  records...

if ($order=="name") {
 $sql1 = "SELECT id FROM $db_table ORDER BY name ASC";
} else {
 $sql1 = "SELECT id FROM $db_table ORDER BY score DESC";
}
$result1 = mysql_query($sql1);

// Top 10 players....

if($top10 == "name"){
 $sql2 = "SELECT name,score FROM $db_table ORDER BY score DESC LIMIT 10";
} else {
 $sql2 = "SELECT id FROM $db_table ORDER BY score DESC";
}
$result2 = mysql_query($sql2);

// Monthly top 10 players.....

if($mtop10 == "name"){
 $sql3 = "SELECT name, score FROM $db_table WHERE date(dateinfo) = CURdate()";
} else{
 $sql3 = "SELECT id FROM $db_table ORDER BY score DESC";
}
$result3 = mysql_query($sql3);


if (!$flash) {
 if ($order == "name") {
  $HTM_1 = "<table cellpadding='0' cellspacing='0' border='0' width=" . $table_width . ">
    <tbody>

    <tr align=center><td>" . $table_prop . "<tr align=center> 
  <th bgcolor='" . $t_color . "'>" . $t_font . "Pos</font></th>
  <th bgcolor='" . $t_color . "'>" . $t_font . "Name</a></font></th>
  <th bgcolor='" . $t_color . "'>" . $t_font . "'>Score</font></th>
  </tr>";
 } else {
  $HTM_1 = "<table cellpadding='0' cellspacing='0' border='0' width=" . $table_width . ">
    <tbody>
  <tr align=center><td>" . $table_prop . "<tr align=center> 
   <th bgcolor='" . $t_color . "'>" . $t_font . "Pos</font></th>
   <th bgcolor='" . $t_color . "'>" . $t_font . "Name</a></font></th>
   <th bgcolor='" . $t_color . "'>" . $t_font . "Score</font></th>
  </tr>";
 }
 echo "$HTM_1";
}

$num = 1;

while($r = mysql_fetch_object($result1))
{
 $result = mysql_db_query($db_name, "SELECT name, score from $db_table WHERE id='{$r->id}'");
 $resultArray = mysql_fetch_array($result);
 $id = $resultArray["id"];
 $name = $resultArray["name"];
 $score = $resultArray["score"];
 if ($sec==1) {
  if ($num <= $sec_size) {
   $HTML = "
   <tr bgcolor='" . $m_color . "' align='center'><td>" . $m_font . $num . "</td>
   <td>" . $m_font . $name . "</font></td>
   <td>" . $m_font . $score . "</font></td>
   </tr>";
  echo "$HTML";
  }
 } else {
  if ($num <= $st_size) {
  //echo "&name$num=$name&score$num=$score";
   if ($flash == 1) {
    echo "&name开发者_开发知识库$num=$name&score$num=$score";
   } else {
       echo "&name$num=$name&score$num=$score&num$num=$num&gamename=$game_name";
    $HTML = "
   <tr bgcolor='" . $m_color . "' align='center'><td>" . $m_font . $num . "</td>
    <td>" . $m_font . $name . "</font></td>
    <td>" . $m_font . $score . "</font></td>
    </tr>";
    echo "$HTML";
   }
   $num++;
  }
 }
}

mysql_close ($conn);
?>


Please consider to add a preview of your database table content. Maybe there is only 1 row in the table?

From a quick look , the problem can be in the condition you have in the query, because after all the query works and fetches content from the database.

WHERE date(dateinfo) = CURdate()

And by the way , Add "LIMIT 10" for the "Monthly top 10 players" queries.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜