php - 使用数组从 mysql 表中选择

标签 php mysql select

我正在尝试使用从另一个表获取的 id 数组来显示数据库表中的行。我希望它显示第一行,即 $rowsfriend。并显示第二行,即 rows......... 但它只显示 $rowsfriend

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "ochat";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
     die("Connection failed: " . $conn->connect_error);
} 

$sql = "SELECT * FROM friends where friend1='".($_POST[id])."'";
$result = $conn->query($sql);

if ($result->num_rows > 0) {

     while($row = $result->fetch_assoc()) {

     $rowsfriend = $row["friend2"];
         echo $rows;
         }
     }
$sqll = "SELECT * FROM users WHERE id IN ($rowssfriend)";
$resultt = $conn->query($sqll);
if ($resultt->num_rows > 0) {

     while($roww = $resultt->fetch_assoc()) {

     $rowsss = $row["username"];
         echo $rowss;
         }
     }
 else {
?>
    <h1>Register</h1> 
    <form action="selectfriends.php" method="post"> 
        id:<br /> 
        <input type="text" name="id" value="" /> 
        <br /><br /> 

        <input type="submit" value="enter" /> 
    </form>
    <?php
}

?>

最佳答案

您可以编写此嵌套查询,而不是两个查询。

$sqll = "SELECT * FROM USERS WHERE ID IN (SELECT friend2 FROM friends WHERE friend1='".$_POST[$id]."')";
$resultt = $conn->query($sqll);
if ($resultt->num_rows > 0)
 {
   while($roww = $resultt->fetch_assoc()) 
     {
       $rowsss = $row["username"];
       echo $rowss;
     }
  }

希望这能解决您的问题。

关于php - 使用数组从 mysql 表中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27873617/

相关文章:

php - Yii2 一种形式的多个模型

php - symfony ajax 表单动态修改

MySQL Select 未根据给定标准进行选择

html - 选择选中和其他选项显示不同?

mysql - 如何排除有重复的行? (消除)

mysql - 将 3 个查询优化为一个查询的最佳方法

php - Laravel Order By 关系计数,但关系中的属性是特定的

php - PHP脚本问题

php - 在 php 和 mysql 中使用 javascript 进行分页

mysql - 根据 If 语句选择自定义列