2013-03-31 83 views
0

我需要從數據庫中的表'groups'中獲取'groupLeader'字段,並將其存儲在一個變量中,然後與當前登錄的用戶名進行比較,但是I得到的錯誤:從MySQL數據庫中選擇一個字段用於比較變量

Warning: mysql_numrows() expects parameter 1 to be resource, object given in /home/content/00/7923300/html/uber/tasks.php on line 31

我目前擁有的代碼是這樣的:

$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

「mysql_numrows()期望參數1是資源」表示$結果沒有填充結果集,這意味着您的查詢不像您期望的那樣工作。嘗試打印查詢並直接運行它。另外,你應該轉向mysqli方法。 –

回答

0

您可能需要使用PHP的的mysql_query或你的框架行號的方法來使用的線路。

$result = mysql_query($sq); 

或許

$db->number_of_rows($sq); 
0

是,不是未知原因正常執行的查詢問題就在這裏。這就是爲什麼它返回錯誤$result,這實際上不是資源。

使用:

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

$result = mysql_query($sq); 
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。

相關問題