我正在做一个建立基本社交网络的实践项目。我有一个包含用户 ID、姓名、姓氏和朋友列的表格,其中包含与他们成为朋友的所有其他“用户”的 ID 号。例如 3 “唐纳德” “鸭子” “4, 5, 23, 42”。
如果我知道这些值,则以下工作:
if(mysqli_connect_errno($con)) {
echo "failed to connect" . mysql_connect_error();
} else {
$resulting = mysqli_query($con, "SELECT * FROM $tbl_name WHERE LastName LIKE '%$secondquery%'
OR LastName LIKE '%$firstquery%'
OR LastName LIKE '%$thirdquery%'
OR LastName LIKE '%$fourthquery%'
OR FirstName LIKE '%$secondquery%'
OR FirstName LIKE '%$firstquery%'
OR FirstName LIKE '%$thirdquery%'
OR FirstName LIKE '%$fourthquery%'
");
$counting = mysqli_num_rows($resulting);
if($counting != 0){
while($row = mysqli_fetch_array($resulting))
{
if($row['Profile'] != null) {
$defaultprofilepic = $row['Profile'];
}else {
$defaultprofilepic = "defaultprofile.JPG";
}
$PublicProfile = $row['ProfilePage'];
$Friends = array("4", "5", "23", "42")
if(in_array(42, $Friends)){
echo $row['FirstName'] . " is your friend!";
} else {
echo "Connect with " . $row['FirstName'];
}
}
}
}
但是,无论数据在数据库中如何显示(例如“1”、“2”、“42”或“1、2、3、4”或 1 2 3 4 ,我都无法正常工作。如果 42 是列表中的第一个,那么它通常会起作用,但这不是很有帮助!
$Friends = array($row['Friends'];
if(in_array(42, $Friends)) {
echo $row['FirstName'] . " is your friend!";
} else {
echo "Connect with " . $row['FirstName'];
}
我知道可能有更好的方法可以做到这一点,甚至可以存储相关数据,因此欢迎提出任何建议!我也知道以下内容可能容易受到 sql 注入的影响(因为“查询”来自用户搜索),但还没有正确理解这一点,因此对此的帮助也会很好。谢谢!