-1

这对我来说毫无意义,但是这个查询显示一些完整的记录,一些部分显示,一些在一行中。似乎没有节奏或理由。更糟糕的是,当我在 MySql 中运行查询时,它工作得很好,完全没有问题。目前我认为它是一个恶魔和/或超级恶魔。

$sql =  "SELECT phonenumber,date,dataplan AS currentplan, SUM(datamb) AS value_sum FROM maindata2 WHERE email='".($_POST['email'])."' GROUP BY phonenumber,date";

$result = mysql_query($sql);

$row = mysql_fetch_assoc($result);

$query = mysql_query($sql) or die(mysql_error());

$header_printed = false;

while($row = mysql_fetch_array($query)) {
    if ($row['phonenumber']) {
        if ($header_printed === false) {

            echo "   
            <table id='display'>
            <tr>
            <th>Phone Number:</th>
            <th>Data Plan:</th>
            <th>Data Usage This Period:</th>
            <th>Remaining:</th>
            <th>Date Reporting:</th>
            </tr>";

            $header_printed = true;
        }
    }
} 

while ($row = mysql_fetch_assoc($result)){
    echo "<tr>";
    echo "<td>".$row['phonenumber'] . "</td> ";
    echo "<td>".$row['currentplan'] . "MB</td> ";
    echo "<td>".ROUND ($row["value_sum"],2) . "MB</td> ";
    echo "<td>".($row['currentplan'] - ROUND ($row["value_sum"],2)) . "MB</td>";
    echo "<td>".$row['date'] . "</td></tr>";
}
echo "</table>";

任何想法都会比我现在多一个!

4

2 回答 2

0

您的问题似乎是您两次运行相同的查询。在这条线上:

$row = mysql_fetch_assoc($result);

您获取结果集的第一个结果行,但实际上您根本没有对它做任何事情。

你也混合了$query和的用法$result

在遍历结果集之前,您可能需要输出表头。然后遍历结果集一次,输出每一行。

于 2013-10-14T16:39:03.410 回答
0

请注意,在循环内部会导致创建多个表,这可能是一个原因,另一个注意事项,你为什么要进行两次相同的查询,这对数据库引擎来说是无用的?!最后一点,永远不要在不清理的情况下直接在查询中使用用户输入。

于 2013-10-11T18:23:56.703 回答