PHP MySQL表协助

问题描述 投票:0回答:1

我有一个脚本,我编辑了一点,在页面上,它没有显示7天的统计数据,这可能是什么原因造成的?

这是页面的部分代码(顺便说一句,我尝试恢复备份,完全没有任何更改,所以它必须来自其他地方)

echo("</td><td>");
@mysql_free_result($res);
$i = 0;
$res = @mysql_query("select date from 7stat where usrid=$usrid order by date desc limit $keep_stats");
$darr = array();
for ($i = 0; $i < @mysql_num_rows($res); $i++) {
    $darr[] = @mysql_result($res, $i);
}
$mvcx = $keep_stats-1;
@mysql_free_result($res);
$i = 0;
if (mysql_query("select count(*) from 7stat where usrid=$usrid") > $keep_stats) {
    @mysql_query("delete from 7stat where usrid=$usrid && date < $darr[$mvcx]");
}
$darr2 = array();
reset($darr);
while (list($k, $v) = each($darr)) {
    $res = @mysql_query("select num from 7stat where date='$v' && usrid=$usrid");
    $darr2[$v] = @mysql_result($res, 0);
    @mysql_free_result($res);
}
$maxnum = 0;
reset($darr2);
while (list($k, $v) = each($darr2)) {
    $maxnum = $maxnum + $v;
}
$maxnum = round($maxnum);
echo("\n<b>Surf Credits Earned Last $keep_stats Days:</b><br><table border=0 cellpadding=2>");
reset($darr2);
while (list($k, $v) = each($darr2)) {
    $v = round($v, 2);
    $px = 500 * ((($v * 100) / $maxnum) / 100);
    $px = round($px);
    echo("\n<tr><td style=\"background-color: #4DA0C6\"><font color=\"#FFFFFF\"><b>&nbsp; $k &nbsp;</b></font></td><td align=left> - <b>$v credits</b></td></tr>");
}
echo("</table>");
echo("</td></tr></table>");
php mysql html-table statistics
1个回答
1
投票

你的"Surf Hits Received Last 0 Days: and Surf Credits Earned Last 0 Days:"线是在$keep_stats变量的帮助下构建的。如果此变量的值为0,如前一个字符串所示,您的SQL查询将包含行LIMIT 0,这将禁止MySQL返回任何行。

你的解决方案在于找出$keep_stats的设置位置以及为什么设置为0

我也不确定是什么

 if (mysql_query("select count(*) from 7stat where usrid=$usrid") > $keep_stats)

应该是的意思。 mysql_query将返回Resource,你将不得不用mysql_result或其他此类函数进行解析。

© www.soinside.com 2019 - 2024. All rights reserved.