0

我需要从数据库中的“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);
4

3 回答 3

0

您可能需要使用 PHP 的 mysql_query 或您的框架行号方法。

 $result = mysql_query($sq);

也许

 $db->number_of_rows($sq);
于 2013-03-31T19:19:41.310 回答
0

这里的问题是,由于未知原因,查询没有正确执行。这就是为什么它将False返回到$result,这实际上不是资源。

利用:

$sq = "SELECT * FROM groups WHERE groupID='".$groupID."'";
$result = mysqli_query($connection, $sq);

或者

$result = mysql_query($sq);
于 2013-03-31T19:21:41.230 回答
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。

于 2013-03-31T19:23:14.580 回答