【发布时间】:2011-08-22 22:16:06
【问题描述】:
我在 php 中有一些代码可以按排序顺序访问 mysql 数据库,然后在表格中打印出信息。但是,无论何时调用 mysql_fetch_array,该函数什么都不返回,即使 mysql_num_rows 为 4。也就是说,如果我执行 $row=mysql_fetch_array($result);,$row['name'] 是 "",即使肯定有表中的名称列。一个sn-p的代码如下:
<?php
include_once("include.php");
$number=0;
if(!isset($_GET['scores'])) {
$number=10;
}
else if((int )$_GET['scores']>100) {
$number=100;
}
else if((int) $_GET['scores']<0) {
$number=10;
}
else {
$number=(int) $_GET['scores'];
}
$con=mysql_connect($dbhost, $dbuser, $dbpass);
mysql_select_db($dbname, $con);
$result=mysql_query("SELECT * FROM ".$dbtable_scores." ORDER BY score DESC,date;", $con);
$num=1;
echo("<table>");
echo("<tr><td>position</td><td>Name</td><td>score</td><td>date</td></tr>");
while($row=mysql_fetch_array($result) && $num<=$number) {
echo("<tr>");
echo("<td>".$num."</td>");
echo("<td>".$row['name']."</td><td>".$row['score']."</td><td>".$row['date']."</td>");
echo("</tr>");
$num++;
}
echo("</table>");
mysql_close($con);
?>
我已经在 mysql cli 中检查了查询,它似乎工作正常。但是,如果您转到http://mtgames.org/index.php,您会看到,该表仅包含不是从 mysql 生成的数字。 mysql 表具有列名称、分数、日期等。 任何帮助表示赞赏。 谢谢, -迈克尔。
【问题讨论】:
-
你能格式化你的代码吗?选择您的代码并按
{}按钮即可。 -
&& $num<=$number为什么需要这部分? -
你能不能在 while 循环开始后做一个 var_dump($row) 并显示输出。