我正在努力获得用户拥有的朋友数量,但我似乎无法让它发挥作用,所以我真的希望你能帮助我。 这是php
$findFriendssql = "select u.firstName, u.id from friends f, user u
where (f.u_ID1 = '$loggedId' and u.id = f.u_id2)
or (f.u_id2 = '$loggedId' and u.id = f.u_id1)";
$all_friends_sql = $db->getRows($findFriendssql);
//$number_of_friends = mysql_num_rows($all_friends_sql);
if ($all_friends_sql) {
$number_of_friends = mysql_num_rows($all_friends_sql);
$friends = "";
foreach ($all_friends_sql as $one_post) {
//doing stuff here.
这里是get rows函数
public function getRows($sql) {
$result = array();
$table = mysql_query($sql, $this->db_link);
if (!$table) {
die("\"$sql\" seems to be an invalid query: " . mysql_error());
}
while ($row = mysql_fetch_assoc($table)) {
array_push($result, $row);
}
return $result;
}
无论我尝试什么 - 我得到的错误是num行期望参数1是资源。 提前谢谢你
答案 0 :(得分:0)
$findFriendssql = "select u.firstName, u.id from friends f, user u where (f.u_ID1 = '$loggedId' and u.id = f.u_id2)
or (f.u_id2 = '$loggedId' and u.id = f.u_id1)";
$all_friends_sql = $db->getRows($findFriendssql);
//$number_of_friends = mysql_num_rows($all_friends_sql);
if (count($all_friends_sql)>0) {
$number_of_friends = mysqli_num_rows($all_friends_sql);
$friends = "";
foreach ($all_friends_sql as $one_post) {
答案 1 :(得分:0)
num行应该在此之后立即发生:
$table = mysql_query($sql, $this->db_link);
$totalFirends = mysql_num_rows($table);
使用$table
作为输入参数。 $table
应该是一种资源。能够使用mysql_num_rows
。
您的函数中的以下内容将$table
更改为不再是资源。此外,您不需要此代码来了解用户有多少朋友:
while ($row = mysql_fetch_assoc($table)) {
array_push($result, $row);
}
return $result;
}
此外,如果您只需要该号码,则查询应更改为SELECT COUNT(some-field)
我不知道$loggedId
的内容是什么,希望您测试查询返回应该返回的内容。使用示例数据查询的输出是正确的,比如phpmyadmin吗?