2017-03-17 40 views
0

我正在構建通過會話ID驗證的登錄用戶的朋友列表。我有代碼查詢,結果,並完美循環。但是,它發佈了一個整數(也許是id#?),(因爲這是我唯一識別條件的選擇查詢),而我想要的是輸出(用戶)「firstname」和「lastname」錶行的用戶ID!爲所需的行輸出添加php數組

聽起來很簡單,但我缺乏使其工作的知識!所以,在這裏,我向編碼人員尋求幫助!任何援助將不勝感激!

這裏是我的代碼:

// Get Friend Array 
$sql = "SELECT * FROM users 
     INNER JOIN friends 
     ON users.id = friends.id 
     WHERE (friends.user1='$u' OR friends.user2='$u' AND friends.accepted='1')"; 
$query = mysqli_query($db_conx, $sql); 
$numrows = mysqli_num_rows($query); 
    while($row = mysqli_fetch_array($query, MYSQLI_ASSOC)){ 
     array_push($my_friends, $row["user2"]); 
     array_push($my_friends, $row["user1"]); 
     } 

     //remove your id from array 
     $my_friends = array_diff($my_friends, array($u)); 
     //reset the key values 
     $my_friends = array_values($my_friends); 
     mysqli_free_result($query); 
     // Loop through $my_friends array and build results 
     foreach($my_friends as $friends => $v2); 
     $friends .= '<a href="user.php?u='.$v2.'"></a>&nbsp;&nbsp; '; 
} 

這裏是我的html代碼:

<ul data-role="listview" data-autodividers="true"> 
     <?php 
      echo "<li>$friends</li>"; 
     ?> 
     </ul> 

這是我想要鍛鍊的代碼 $friends .= '<a href="user.php?u='.$v2.'"></a>&nbsp;&nbsp; ';的最後一行。如何添加該行的語法($ row [「users.firstname」]和$ row [「users.lastname」]),並以某種方式不列出正在加入兩個表的用戶「$ id#」(用戶)和(朋友)在選擇查詢!

這可能是我需要一個完全不同的陣列來滿足我的需求,如果您知道正確的方法,請告訴我該怎麼做......謝謝大家!

回答

0

我的理解是你缺少用戶的idrow。這個問題是因爲php數組不能有兩個同名的keys。 更改您查詢像下面

$sql = "SELECT *, friends.id as friendsID FROM users 
     INNER JOIN friends 
     ON users.id = friends.id 
     WHERE (friends.user1='$u' OR friends.user2='$u' AND friends.accepted='1')"; 

現在你將有id' as User Id and friendsID`爲好友的ID

+0

好一點,我的'id'在代碼中工作良好。它是InnerJoins的兩個表格。但是,我需要首先加入它們的原因是因爲我想從Users表中拉出'firstname和lastname'行並將它們添加到我的變量'$ friends'中,以便我的html列表視圖中的回顯將顯示他們的名字。現在,數組將正確的用戶和鏈接拉到他們的配置文件中,但是listview只顯示整數0? – user3188874