2013-03-13 2 views
0

Я работаю в социальной сети, у меня есть таблица fanpages, в которой пользователь может создать профиль для своей любимой группы или знаменитости, а другой стол под названием друзей, где они могут подписаться на файлы. Затем я хочу, чтобы запросы появлялись в уведомлениях для администратора fanpage, кроме. после первого запроса sql он возвращает fanpages с несколькими значениями, но если я повторяю следующий запрос sql sql, он показывает, что он выбирает только один результат для запроса вместо всех из них.Попытка получить результаты первого запроса для поиска второго запроса

так что в основном мне нужно запрашивать таблицу fanpages для всех fanpages created_by вошедшей в систему пользователя ($ log_username), тогда мне нужно взять эти файлы и запросить таблицу друзей, чтобы узнать, просил ли кто-нибудь подписаться на поклонников пользователей страницы ??

эта строка кода $ fanpage_requests = "$ fansubSql"; выходы SELECT * FROM friends WHERE user2 = 'fan4' AND принят = '0' ORDER BY datemade ASC как единственный результат, но должно быть 2 результата, так как запросы fan3 и fan4 имеют запросы.

спасибо за вашу помощь Майкл

$fanpage_requests = ''; 

$fansql = "SELECT created_by, fanpage_name FROM `fanpages` WHERE created_by = '$log_username' "; 
$fanquery = mysqli_query($db_conx, $fansql); 
$fannumrows = mysqli_num_rows($fanquery); 

if($fannumrows < 1){ 
    $fanpage_requests = 'No friend requests'; 
} else { 

    while($row = mysqli_fetch_array($fanquery, MYSQLI_ASSOC)) { 
     $fanpage_name = $row["fanpage_name"]; 
     $created_by = $row["created_by"]; 

     $fansubSql = "SELECT * FROM friends WHERE user2='$fanpage_name' AND accepted='0' ORDER BY datemade ASC"; 
     $fansubQuery = mysqli_query($db_conx, $fansubSql); 
     $fansubNumrows = mysqli_fetch_row($fansubQuery); 
     $fanpage_requests = "$fansubSql"; 

     if($fansubNumrows < 1){ 
      $fanpage_requests = "blah blah"; 
     } 

     while ($fansubRow = mysqli_fetch_array($fansubQuery, MYSQLI_ASSOC)) { 
      $fansubreqID = $fansubRow["id"]; 
      $fansubuser1 = $fansubRow["user1"]; 
      $fansubdatemade = $fansubRow["datemade"]; 
      $fansubdatemade = strftime("%B %d", strtotime($datemade)); 

      $fansubthumbquery = mysqli_query($db_conx, "SELECT avatar FROM users WHERE username='$user1' LIMIT 1"); 
      $fansubthumbrow = mysqli_fetch_row($thumbquery); 
      $fansubuser1avatar = $thumbrow[0]; 
      $fansubuser1pic = '<img src="user/'.$user1.'/'.$user1avatar.'" alt="'.$user1.'" class="user_pic">'; 

      if($fansubuser1avatar == NULL){ 
       $fansubuser1pic = '<img src="images/avatardefault.jpg" alt="'.$user1.'" class="user_pic">'; 
      } 

      $fanpage_requests .= '<div id="friendreq_'.$fansubreqID.'" class="friendrequests">'; 
      $fanpage_requests .= '<a href="user.php?u='.$fansubuser1.'">'.$fansubuser1pic.'</a>'; 
      $fanpage_requests .= '<div class="user_info" id="user_info_'.$fansubreqID.'">'.$fansubdatemade.' <a href="user.php?u='.$fansubuser1.'">'.$fansubuser1.'</a> requests friendship<br /><br />'; 
      $fanpage_requests .= '<button onclick="fanReqHandler(\'accept\',\''.$fansubreqID.'\',\''.$fansubuser1.'\',\'user_info_'.$fansubreqID.'\')">accept</button> or '; 
      $fanpage_requests .= '<button onclick="fanReqHandler(\'reject\',\''.$fansubreqID.'\',\''.$fansubuser1.'\',\'user_info_'.$fansubreqID.'\')">reject</button>'; 
      $fanpage_requests .= '</div>'; 
      $fanpage_requests .= '</div>'; 
     } 
    } 
} 

?>

ответ

0

Прочитайте документацию. mysqli_fetch_row НЕ возвращает число. Он возвращает ONE запись из запроса. Посмотрите примеры в документации: вам нужно использовать mysqli_fetch_row внутри цикла для извлечения всех записей.

Чтобы узнать количество строк, возвращаемых запросом, используйте mysqli_num_rows.

+0

ok Я посмотрел, что вы зашумели и изменил первую часть, чтобы выглядеть так: $ fanpage_requests = ''; $ fansql = "SELECT created_by, fanpage_name FROM' fanpages' WHERE created_by = '$ log_username' "; \t, если ($ fanquery = mysqli_query ($ db_conx, $ fansql)) { \t \t \t \t в то время как ($ fanrow = mysqli_fetch_array ($ fanquery, MYSQLI_ASSOC)) { $ fanpage_name = $ fanrow [ "fanpage_name"]; $ created_by = $ fanrow ["created_by"]; \t \t \t $ fansubSql = "SELECT * FROM friends WHERE user2 = '$ fanpage_name' И принят = '0' ORDER BY datemade ASC"; –

+0

, но до сих пор не имеет значения –

+0

Отладка вашего кода: используйте «echo» для печати значений переменных или запросов перед их выполнением. Используйте «print_r» для отображения записей, возвращаемых вашими запросами. Включите отчет об ошибках, проверьте свои журналы ошибок. Скажите, с чем вам нужна помощь, разместите короткий и соответствующий фрагмент кода и точное сообщение об ошибке, которое вы получаете. Вы не используете «mysqli_error()», откуда вы знаете, если один из ваших запросов терпит неудачу? – Jocelyn

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