2015-01-12 4 views
0

Я пытаюсь получить количество друзей, которые есть у пользователя, но я не могу заставить его работать, поэтому я действительно надеюсь, что вы можете мне помочь. Вот PHPPhp - mysql - Возвращает количество строк

$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. 

и здесь ГЭТ строки функционируют

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

yah - он выдает ошибку параметра ожидания, но я могу опубликовать его для вас здесь. Предупреждение: mysql_num_rows() ожидает, что параметр 1 будет ресурсом, массив указан в /Applications/XAMPP/xamppfiles/htdocs/gamershubFinalLocal/findFriends.php в строке 22 – Stender

+0

Ну, просто используйте ** count ($ all_friends_sql) ** вместо ** mysql_num_rows ($ all_friends_sql) **, хотя я не могу понять ваш запрос. – anwerj

ответ

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) { 
0

НЮМ строка должна произойти мгновенную после этого:

$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?

Смежные вопросы