这对我来说没有任何意义,但是这个查询显示了一些记录,有些是部分记录,有些记录是单行记录。看似没有节奏或理由。更糟糕的是,当我在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>";
任何想法都会比我现在更多!
答案 0 :(得分:0)
只是注意到循环内部导致了多个表的创建,这可能是一个原因,另一个注意事项,为什么你要进行两次相同的查询,这对db引擎来说是无用的?最后一点,永远不要在查询中直接使用用户输入而不进行清理。
答案 1 :(得分:0)
您的问题似乎是您正在运行两次相同的查询。在这一行:
$row = mysql_fetch_assoc($result);
您获取结果集的第一个结果行,但实际上根本没有对它执行任何操作。
您也可以混合使用$query
和$result
。
在遍历结果集之前,您可能需要输出表头。然后遍历结果集一次,输出每一行。