当我尝试显示资源警告时,我得到了以下错误: mysql_numrows()期望参数1为index.php,布尔值在C:\xampp\htdocs\cards\index.php第18行给出
我不知道是我没有正确地连接到数据库,还是其他一些错误。基本上,我正在尝试显示来自我的表“卡片”的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';
?>我知道这可能是一个简单的新手问题,但我很感谢你的帮助。
发布于 2012-12-03 05:32:20
您的mysql_select_db调用应该只将数据库名称作为第一个参数,而不是整个USE语句。最有可能的情况是,它静默地失败,并且不选择卡片数据库。然后查询失败(再一次静默地)返回false。
发布于 2012-12-03 05:51:05
而且,它是mysql_num_rows (不是mysql_numrows)。
手册:http://php.net/manual/en/function.mysql-num-rows.php
发布于 2012-12-03 07:36:39
有两件事,回显一个数组不会打印它(echo $results;),而是使用print_r($results)或var_dump($results)和另一件事,我认为错误是由于没有返回结果而引起的,但是如果你使用var_dump或print_r,你将能够验证是否是这种情况:)
这里还有一个拼写错误:$con = mysql_pconnect("localhost","jalexander","brunswick3");从connect :中删除p)
此外,您可能希望在以下位置使用asterixes替换您的数据库凭据:)
最后,你声明了变量卡,但从来没有使用过它?
实际上,将$rowsplayerName更改为$rows‘’playerName‘
为了获得不同的行,可以使用而不是使用while循环:
foreach($array as $row){
echo $row['playerName'];
}或使用while循环执行此操作,请使用
$i=0;
while ($i < $num) {
echo $rows[$i]['playerName'];
$i++;
}这在您当前的代码中不起作用,因为您没有遍历数组的元素,只是每次都回显相同的元素
https://stackoverflow.com/questions/13674038
复制相似问题