繁体   English   中英

MySQL / PHP-选择表1中的列等于表2中的列的所有行,并创建一个foreach循环

[英]MySQL/PHP - Select all the rows where column from table 1 is equal to column from table 2 and creating a foreach loop

我正在寻找一种可以从MySQL表中选择所有行的方法,其中table1中的列等于表2中的列。

这是我想通过代码描述的内容。 我试过了,但没有任何反应。

SELECT * FROM `table1` WHERE `table1.id`= `table2.id` ORDER by `table1.name` ASC; 

然后,当我选择这些行时,我必须将其中一些回显到foreach循环中,如下所示:

<?PHP
foreach($results as $row){
echo $row['table1.name'];             
}
?>

您能给我一种使此事情发生的正确方法的答案吗?

提前致谢!

FROM部分中使用两个表

SELECT * FROM `table1`, `table2` WHERE `table1.id`= `table2.id` ORDER by `table1.name` ASC;

或像这样使用INNER JOIN

    SELECT * FROM `table1` INNER JOIN `table2` ON `table1.id`= `table2.id` ORDER by `table1.name` ASC

&然后获取这样的值,您不需要$ row []中的别名,但是列(或它们各自的别名)必须是唯一的

<?PHP
    $query = "SELECT * FROM `table1`, `table2` WHERE `table1.id`= `table2.id` ORDER by `table1.name` ASC";

    $res = mysqli_query($conn, $query);
    while($row = $mysqli_fetch_assoc($res)){
        echo $row['name'];             
    }
?>

答案假设您已创建一个名为$ conn的数据库连接

使用mysql 加入

SELECT * FROM `table1` inner join table2 on `table1.id`= `table2.id` ORDER by `table1.name` ASC;

或完整的代码是

<?PHP
    $query = "SELECT * FROM `table1` inner join table2 on `table1.id`= `table2.id` ORDER by `table1.name` ASC";

    $res = mysqli_query($conn, $query);
    $row = $mysql_fetch_array($res);
    foreach($row as $rows){
    //Add colum name 
    echo $rows['name'];
    }

?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM