php - SELECT SUM 数据等级和资源 ID #9 错误 PHP

标签 php mysql select sum ranking

我有一个网站,其中登录的成员存储在名为“用户”的表下

‘用户’表

users_sales_guild_id | users_first_name | users_surname
555                  | Jane             | Smith
333                  | John             | Smith
111                  | Mike             | Myers

用户在名为“sales_list”的单独表中的“sales_points”字段中有销售数据。

'sales_list' 表

sales_id |  users_sales_guild_id     |  sales_points    |  sales_entry_date
1        |  555                      |  50              |  2013-02-31 00:00:00
2        |  333                      |  30              |  2013-02-31 00:00:00
3        |  111                      |  10              |  2013-02-31 00:00:00
4        |  555                      |  50              |  2013-03-31 00:00:00
5        |  333                      |  30              |  2013-03-31 00:00:00
6        |  111                      |  10              |  2013-03-31 00:00:00

基本上我想做的是一个查询:

一个。计算“sales_list”中每个用户的“sales_points”总数

B.列出 100 个用户,得分最高的用户排在最前面,然后在下面排名次高,依此类推...

C.我不是在排名数字,而是订单本身。

使用下面的代码,我让 100 个用户打印正常,但是当它打印时,我在“总点数”列中收到“资源 ID #9”消息。谁能帮忙?

我要打印的内容

Jane Smith   |   100
John Smith   |   60
Mike Myers   |   20

代码:

    <?php 
    require_once ('config.inc.php');

    $page_title = '';
    include ('header.html');

    if (!isset($_SESSION['users_id'])) {

      $url = 'http://' . $_SERVER['HTTP_HOST']
        . dirname($_SERVER['PHP_SELF']);
       // Check for a trailing slash.
       if ((substr($url, -1) == '/') OR (substr($url, -1) == '\\') ) {
            $url = substr ($url, 0, -1); // Chop off the slash.
       }
       // Add the page.
       $url .= 'login.php'; 

    ob_end_clean(); // Delete the buffer.
    header("Location: $url"); 
    exit(); // Quit the script.
    }?>

    <h1>Rankings</h1>

    <?php require_once ('database.php'); // Connect to the database.

    $total = mysql_query("SELECT SUM(sales_points) FROM sales_list,users WHERE sales_list.users_sales_guild_id = users.users_sales_guild_id
    AND sales_entry_date
    BETWEEN '2013-10-01 00:00:00' AND '2013-11-30 23:59:59'
    " ); 

    $query = "SELECT us.users_id, us.dealership_id, us.users_sales_guild_id, us.users_first_name, us.users_surname, us.users_type, 
             de.dealership_id, de.users_dealer_name, de.class , de.region, de.state, de.users_dealer_code_id, de.users_dealer_code_new_id, de.users_model, de.pma
             FROM users AS us, dealerships AS de 
             WHERE us.dealership_id = de.dealership_id
             ORDER BY ’$total’ DESC 
             LIMIT 100";

    $result = @mysql_query ($query); 

    // Table header.
    echo '<table  width="680"cellpadding="5" cellspacing="1" style="font-size:12px;">
    <tr class="orangehead">
    <td align="center"><b>Member</b></td>
    <td align="center"><b>Title</b></td>
    <td align="center"><b>Dealer</b></td>
    <td align="center"><b>Category</a></b></td>
    <td align="center"><b>Dealer Code</a></b></td>
    <td align="center"><b>Total Points</a></b></td>
    </tr>';

    // Fetch and print all the records. echo '<td align="left"><strong>' . $row['sp_invoice_no'] . '</strong></td> ';

    $bg = '#ffffff'; // Set the background color.
    while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {

        $bg = ($bg=='#eaeced' ? '#ffffff' : '#eaeced'); // Switch the background color.   New: ' . $row['users_sales_guild_new_id'] . '
        // $entries = floor($row['sp_entry_amount']/200);
        echo '<tr bgcolor="' . $bg . '">';           
        echo '<td align="left"><strong>' . $row['users_first_name'] . ' ' . $row['users_surname'] . '</strong></td> ';  
        echo '<td align="center">' . $row['users_type'] . ' </td>';     
        echo '<td align="center"> ' . $row['users_dealer_name'] . ' </td>';     
        echo '<td align="center"> ' . $row['class'] . ' </td>';     
        echo  '<td align="center"> ' . $row['users_sales_guild_id'] . ' </td>';     
        echo  '<td align="center"> ' . $total . '</td>';    
        echo  '</tr>
        ';
        }

    echo '</table>';

    mysql_free_result ($result); // Free up the resources.

    mysql_close(); // Close the database connection.    

    include ('footer.html'); // Include the HTML footer.
    ?>

最佳答案

您不会获取第一个结果。例如,将其作为数组 (mysql_fetch_array()) 获取。

// Execute query
$total_query = mysql_query("SELECT SUM(sales_points)
                      FROM sales_list, users
                      WHERE sales_list.users_sales_guild_id = users.users_sales_guild_id
                      AND sales_entry_date
                      BETWEEN '2013-10-01 00:00:00' AND '2013-11-30 23:59:59'");

// Fetch result
$total = mysql_fetch_array($total_query);

关于php - SELECT SUM 数据等级和资源 ID #9 错误 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23335373/

相关文章:

java - 将数据库配置查询值传递给 native 查询

mysql - 连接 MySQL 中的三个表并获取每个 id 一行(第一个表中每个实体一行)

javascript - JQuery 在链式选择后选择多个

javascript - 当特定选项的选择值未更改或值更改为特定选项时,如何使用 Jquery 触发事件

database - SQLite 的 QSqlQuery 在前向迭代中使用 next() 只会找到一行

php - HTML 和 PHP : how to manage a button in a form

php - Laravel - 如何检查 2 个用户之间是否存在对话 - 消息系统

javascript - 使用 onClick 提交 PHP 表单

c# - 如何使用 Dapper-Extensions 自动绑定(bind)下划线表/列名称?

php - $this->value = $dbarray 不返回任何内容