当我尝试显示index.php时出现以下错误 警告:mysql_numrows()期望参数1是资源,布尔值在第18行的C:\ xampp \ htdocs \ cards \ index.php中给出
我无法判断我是否未正确连接到数据库,或者是否是其他错误。基本上我试图从我的表“卡”中显示3个随机数据行。表中要显示数据的列是“playerName”。我并不担心格式化数据。代码如下:
<?php
include_once 'header.php';
require_once 'config.php';
$con = mysql_pconnect("localhost","*****","*****");
mysql_select_db("USE cards",$con);
$cards=0;
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
$sql = "SELECT * FROM cards ORDER BY RAND() LIMIT 3";
$results = mysql_query($sql);
$array = mysql_fetch_array($results);
$num=mysql_num_rows($results);
$i=0;
while ($i < $num) {
echo $rows['playerName'];
$i++;
}
include_once 'footer.php';
?>
我知道这可能是一个简单的新手问题,但我很感激帮助。
答案 0 :(得分:3)
您的mysql_select_db调用应该只将数据库名称作为第一个参数,而不是整个USE语句。很可能它会无声地失败并且不会选择卡片数据库。然后查询失败(再次,静默)返回false。
答案 1 :(得分:1)
另外,它是mysql_num_rows(不是mysql_numrows)。
答案 2 :(得分:1)
两件事,回显一个数组不会打印它(echo $ results;)而是使用print_r($ results)或var_dump($ results)和另一件事,我认为错误是由于没有返回结果引起的,但是如果您使用var_dump或print_r,您将能够验证是否是这种情况:)
这里也有一个拼写错误:$ con = mysql_pconnect(“localhost”,“jalexander”,“brunswick3”);从连接中移除p :)
此外,您可能希望在此处使用星号替换数据库凭据:)
最后,您声明变量卡但从不使用它?
实际上还有一个,将$ rows [playerName]更改为$ rows ['playerName']
要获得不同的行而不是使用while循环,您可以像这样使用foreach:
foreach($array as $row){
echo $row['playerName'];
}
或者使用while循环使用
$i=0;
while ($i < $num) {
echo $rows[$i]['playerName'];
$i++;
}
它在您当前的代码中不起作用,因为您没有循环遍历数组的元素,只是每次都回显相同的元素