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或任何爵士乐的演讲,这是我个人使用。
发生什么事是我的代码还返回实际结果的后面和后面的空白结果。请参阅图像,所以你明白我的意思
我可能失去了一些东西很简单,和我道歉,如果是这样的话。
谢谢你提前。 ,USER_NAME,USER_NAME,USER_NAME,USER_NAME,所述第一逗号和最后一个逗号然而它被指示存在一个字,:
的explode()
方法各定界符所以在这种情况下,后面的字符串中分离是空的。
对此的解决方法是将保存friend_array作为USER_NAME,USER_NAME,USER_NAME,USER_NAME (没有第一和最后一个逗号)
这真的很有帮助,我很欣赏这一点,我将考虑如上所述正常化我的数据,但至少我知道发生这种情况的原因。 –
“只是因为你的额外逗号而空着, – nogad
那样停止存储数据和归一化了。只是为空,因为你的额外的逗号 – nogad
*“请问我可以表达我不需要准备好的声明PDO或任何爵士乐的演讲,这是为我个人使用”* - 所以,如果它会永远不要上网.................. –
*“我可能错过了一些非常简单的事情”* - 这是你在后来如果和当它在线,就像在“你的数据库”中将会丢失的一样。从正确的做法开始,不要混淆不安全的代码,你会继续以相同的方式进行编码。 –