我正在尝试创建一个社交网络。在配置文件详细信息中,我希望显示该配置文件用户的至少10个朋友。我使用:
$connect = mysqli_connect("...","...","...","dbname"); //NOT REALLY IMPORTANT
$find = "SELECT * FROM friendslist WHERE user1 = '$myusername'";
$exec = mysqli_query($connect,$find);
while($row=mysqli_fetch_assoc($exec)) {
$friendusername = $row['user2'];
$con2 = "SELECT * FROM users WHERE username = '$friendusername' ";
$exec2 = mysqli_query($con,$con2);
$row2 = myslqi_fetch_assoc($exec2);
echo $row2['firstname']."<br/>";
我的表:
FOR friends:
id, user1, user2
FOR users
id, username, firstname
它会显示我所有的朋友如果我有20个朋友,它会显示所有的20个朋友。如何将其限制为仅显示10个?
尝试:
$find = "SELECT * FROM friendslist WHERE user1 = '$myusername' LIMIT 0, 10";
连接查询,限制为10。
"SELECT * FROM friendslist LEFT JOIN users ON friendslist.user2=users.username WHERE user1 = '$myusername' LIMIT 10"
就像@Danijel的回答一样,好的选择是加入表格。
首先连接表,使用f获取friendlist。user1 = '$myusername',以后限制为10。
PD:不要在循环中执行查询,这会影响性能
$find = "SELECT *
FROM friendslist f, users u
WHERE f.user2 = u.username
AND f.user1 = '$myusername'
LIMIT 10";
$exec = mysqli_query($connect,$find);
while($row=mysqli_fetch_assoc($exec)) {
echo $row2['firstname']."<br/>";
}