我需要从数据库中的表'groups'获取'groupLeader'字段并将其存储在变量中,然后与当前登录的用户名进行比较,但我收到错误:
警告:mysql_numrows()期望参数1是资源,第31行/home/content/00/7923300/html/uber/tasks.php中给出的对象
我目前的代码是:
$sq = "SELECT * FROM groups WHERE groupID='".$groupID."'";
$result=$db->query($sq);
$num=mysql_numrows($result);
$i=0;
while ($i < $num) {
$gLeader= mysql_result($result, $i, 'groupLeader');
$i++;
}
if($_COOKIE['$username'] == $gLeader) {
echo "User is leader.";
}
如果这看起来像一个相当简单的请求,请原谅我。我是php和使用数据库的新手。
编辑:忘记提及第31行是包含
的行$num=mysql_numrows($result);
答案 0 :(得分:0)
您可能需要使用PHP的mysql_query或框架行号方法。
$result = mysql_query($sq);
或者
$db->number_of_rows($sq);
答案 1 :(得分:0)
这里的问题是,由于未知原因,查询未正确执行。这就是为什么它将 False 返回到$result
,这实际上不是资源。
使用:
$sq = "SELECT * FROM groups WHERE groupID='".$groupID."'";
$result = mysqli_query($connection, $sq);
或
$result = mysql_query($sq);
答案 2 :(得分:0)
大多数代码都是冗余且毫无意义的。如果你想要的只是一行中的一个字段,那么就不要SELECT *
,并且不要使用循环。
$sql = "SELECT groupLeader FROM ..."
$result = mysql_query($sql) or die(mysql_error());
if (mysql_num_rows($result) > 0) {
$row = mysql_fetch_assoc($reuslt);
if ($row['groupLeader'] == $_COOKIE['username']) {
...
}
}
但是,请注意,mysql _ *()函数复合体在PHP中已正式弃用,不应再使用。考虑切换到mysqli,这通常是插入兼容的,或者更好的是,改为使用PDO。