2017-03-17 74 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