从MySQL数据库中选择单个字段以比较变量

时间:2013-03-31 19:15:31

标签: php mysql

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

3 个答案:

答案 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。