2016-08-29 3 views
-1

사용자 이름을 검색하고 사용자가이를 따르는 쿼리가 하나 있습니다. 그 결과는 while 루프에 표시됩니다. 그 루프에서 나는 얼마나 많은 사람들이 그 사용자를 따르고 있는지를 알 수있는 다른 쿼리를 가지고있다. 문제는 모든 결과에 대해 동일한 숫자가 표시된다는 것입니다. 마치 한 번만 쿼리를 실행하는 것과 같습니다. 여기 코드는 다음과 같습니다동일한 결과를 계속 반환하는 SQL 쿼리

<?php 
    $req = $db->prepare("SELECT * FROM users, follows WHERE follows.userId = ?  AND follows.followerId = users.userId ORDER BY users.username"); 
       $req->execute(array($userId)); 
       while($data = $req->fetch()){ 

       ?> 
        <p> 
        <img src="files/useruploads/<?php echo $data['profilePic']; ?>" class="left" style="width: 30px; height: 30px; border-radius: 900px;" alt=""/> 
        <a href="<?php echo $data['username']; ?>/"><?php echo $data['username']; ?></a><br> 
        <?php 
        $followers = $db->prepare("SELECT *, COUNT(*) AS followers FROM follows WHERE follows.followerId = ?"); 
        $followers->execute(array($data["userId"])); 
        if($date = $followers->fetch()){ 
         $totFollowers = $date["followers"]; 
        } 
        ?> 
        <span class="grey-text"><?php echo $totFollowers; ?></span> 
        </p> 
       <?php 
       } 
       ?> 

답변

0

이 함께 내면의 쿼리 코드를 바꿉니다 :

$followers = $db->prepare("SELECT *, COUNT(*) AS followers FROM follows WHERE follows.userId = ?"); 

예상 결과가 와야한다.

+0

에 다음 코드

if($date = $followers->fetch()){ $totFollowers = $date["followers"]; } 

를 대체 누군가와 'followerId을 따르고 시도 '따라 오는 사람을 위해. – SirMaxime

-1

쿼리 문자열에 오류가 없다고 가정합니다.

(가) 누가 그 사람을 식별하는 테이블을 다음에 내가 '사용자 ID'를 사용, 아니, 그래도 문제가 해결되지

while($date = $followers->fetch()){ 
         $totFollowers = $date["followers"]; 
        } 
+0

작동하지 않는 것 같아요 – SirMaxime

+0

어때요? $ followers-> execute (array ($ data [ "userId"])); $ date = $ followers-> fetchAll()); foreach ($ date AS $ Key => $ Value) { $ totFollowers = $ Value [ "followers"]; } –

+0

아직 없습니다. : / – SirMaxime

관련 문제