2017-02-07 255 views
0

从下面的代码,这是我想要实现的:如果由$ get_friends查询发现citizenID是1和2.我想要while循环首先获取所有行1,然后对2进行同样的操作。我现在的代码仅在其下方检索1和2的最后一行。请帮助。PHP不循环,因为我想

<?php 

include ('session_start.php'); 
include_once('db_connect_universal.php'); 

$user_id = $_SESSION['sess_id']; 

//GET USER FRIENDS AND DETAILS 
$get_friends = "SELECT * FROM citizens 
       INNER JOIN user_details 
       ON citizens.citizenID=user_details.UserID 
       WHERE citizens.userID = '".$user_id."'"; 

$results_get_friends = $conn->query($get_friends); 

$num_rows_friends = mysqli_num_rows ($results_get_friends); 

while ($row_friends = $results_get_friends->fetch_assoc()) { 

    $citizenID = $row_friends['citizenID']; 

    //GET RATINGS AND COMMENTS 
    $sql = "SELECT * FROM comments 
       INNER JOIN organiser ON comments.movieID=organiser.movieID 
      WHERE comments.userID= '".$citizenID."' 
       AND ratings_n_comments.Time BETWEEN DATE_SUB(CURDATE(), INTERVAL 28 DAY) 
               AND DATE_ADD(CURDATE(), INTERVAL 10 DAY) 
      ORDER BY comments.Time DESC"; 

    $result = $conn->query($sql); 

    $num_rows = mysqli_num_rows ($result); 

    $row = $result->fetch_assoc(); 

    $n_Rating[]= array(
         'dp' => $row_friends['display_pics'], 
         'uname' => $row_friends['Uname'], 
         'poster'=> $row['mooster'], 
         'title'=> $row['moitle'], 
         'genre'=> $row['moenre'], 
         'comment'=> $row['Comment'], 
         'mid'=> $row['mID'], 
         'check' => 'data' 
        ); 
} 

header('Content-Type: application/json'); 
echo json_encode ($n_Rating); 

} 

//detailed error reporting 
if (!$sql) { 
    echo 'MySQL Error: ' . mysqli_error($conn); 
    exit; 
} 
?> 
+0

明智代码缩进使得调试代码要容易得多 – RiggsFolly

+0

'if(!$ sql){'?? '$ sql'是一个包含查询的字符串文字。不是发出查询的结果。所以,你的错误报告,除了在这个过程中的方式太晚不会给你任何帮助,如报告错误 – RiggsFolly

+0

你似乎有不必要的'}' – RiggsFolly

回答

1

你只是取$row = $result->fetch_assoc();一行。

您是否试图为用户提取所有评论?

因为那么你就需要循环槽一切$result有,就像你与while ($row_friends = $results_get_friends->fetch_assoc())

此外,而不是串联您的SQL查询做,用preparebind_param尝试avoid possible SQL injection

+0

傻了,现在都很好,非常感谢jkrnak。同时感谢您对使用准备的建议和bind_param将会查看它。 – chiboz