foreach循环返回重影结果php sql

问题描述:

我在我的数据库中有一个名为'users'的表,这个表中的一列是'friend_array'。此列存储用户成为好友后的用户名。 该列中的数据的样子是“USER_NAME,USER_NAME,USER_NAME,USER_NAME,”foreach循环返回重影结果php sql

我遇到的问题如下:

这是我在朋友阵列,在爆炸吧“ ,'然后获取与每个结果有关的信息。

我的代码

public function getFriends($user_to_check) { 

    $pull= mysqli_query($this->connection, "SELECT friend_array FROM users WHERE username ='$user_to_check'"); 
     confirm($pull); 
     $userPull = fetch_array($pull); 

    $value = $userPull['friend_array']; 
    $result = explode(",", $value); 
    foreach($result as $newvalue) { 


     $query= mysqli_query($this->connection, "SELECT * FROM users WHERE username ='$newvalue'"); 
     confirm($query); 
     $row = mysqli_fetch_assoc($query); 
     $image = $row['profile_pic']; 
     $username = $row['username']; 
     echo "<li><a href='$username'> 
       <div class='thumbnail-wrapper d32 circular b-white m-r-5 b-a b-white'> 
        <img width='35' height='35' data-src-retina='$image' data-src='$image' src='$image'> 
       </div> 
       </a> 
       </li>"; 
    } 



} 

所以来看看,你可以看到这个回声出每个用户的个人资料图片的HTML。 该查询工作正常,请我可以表达,我不需要在准备好的声明PDO或任何爵士乐的演讲,这是我个人使用。

发生什么事是我的代码还返回实际结果的后面和后面的空白结果。请参阅图像,所以你明白我的意思

enter image description here

我可能失去了一些东西很简单,和我道歉,如果是这样的话。

谢谢你提前。 ,USER_NAME,USER_NAME,USER_NAME,USER_NAME,所述第一逗号最后一个逗号然而它被指示存在一个字,:

+0

那样停止存储数据和归一化了。只是为空,因为你的额外的逗号 – nogad

+0

*“请问我可以表达我不需要准备好的声明PDO或任何爵士乐的演讲,这是为我个人使用”* - 所以,如果它会永远不要上网.................. –

+0

*“我可能错过了一些非常简单的事情”* - 这是你在后来如果和当它在线,就像在“你的数据库”中将会丢失的一样。从正确的做法开始,不要混淆不安全的代码,你会继续以相同的方式进行编码。 –

explode()方法各定界符所以在这种情况下,后面的字符串中分离是空的。

对此的解决方法是将保存friend_array作为USER_NAME,USER_NAME,USER_NAME,USER_NAME (没有第一和最后一个逗号)

+0

这真的很有帮助,我很欣赏这一点,我将考虑如上所述正常化我的数据,但至少我知道发生这种情况的原因。 –

+0

“只是因为你的额外逗号而空着, – nogad