限制MySQL搜索输出为10


Limit MySQL search output to 10

我正在尝试创建一个社交网络。在配置文件详细信息中,我希望显示该配置文件用户的至少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/>";
        }