0

当我尝试显示 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';

?>

我知道这可能是一个简单的新手问题,但我感谢您的帮助。

4

3 回答 3

3

您的 mysql_select_db 调用应该只将数据库名称作为第一个参数,而不是整个 USE 语句。很可能它会静默失败并且不选择卡片数据库。然后查询失败(再次,静默)返回 false。

于 2012-12-02T21:32:20.167 回答
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++;
}

它在您当前的代码中不起作用,因为您没有循环遍历数组的元素,只是每次都回显相同的元素

于 2012-12-02T23:36:38.943 回答
1

此外,它是 mysql_num_rows(不是 mysql_numrows)。

手册: http: //php.net/manual/en/function.mysql-num-rows.php

于 2012-12-02T21:51:05.213 回答