繁体   English   中英

如何正确加入两个表?

[英]How to JOIN two tables correctly?

在某个地方,你有耐心把你带到某个地方,现在才是最后一个问题。

它适用于一方,只有没有任何收件人的人,收件人的庇护所看不到它,它只看到一个空白的页面。

$usersi = $dbh->prepare('SELECT * FROM recettes WHERE id_user = :id');
$usersi->bindParam(':id', $_GET['id'], PDO::PARAM_INT);
$usersi->execute();
$usersis = $usersi->fetchAll(PDO::FETCH_ASSOC);

对于id = 1的用户:

<?php
$usersi_sql = $dbh->prepare('SELECT * FROM recettes WHERE id_user = 1');
$usersi_sql->execute();
$usersi = $usersi_sql->fetchAll(PDO::FETCH_ASSOC);
?> 

我的问题的解决方案是:

$usersi_sql = $dbh->prepare('SELECT * FROM recettes WHERE id_user = :id');
$usersi_sql->bindParam(':id', $ma['id'], PDO::PARAM_INT);
$usersi_sql->execute();
$usersi = $usersi_sql->fetchAll(PDO::FETCH_ASSOC);  
if(isset($usersi[0])) {
?>

这是您的HTML代码

<?php
}
 }else{
?>

这是您的HTML else代码

<?php } ?>

这在你的php文件的顶部

$ma_sql = $dbh->prepare('SELECT * FROM users WHERE id = :id');
$ma_sql->bindParam(':id', $_GET['id'], PDO::PARAM_INT);
$ma_sql->execute();
$ma = $ma_sql->fetch();

我在我的顶部使用它,因为它还检查用户是否登录,但上面是该代码的一部分。

如果您希望所有收件人都链接到所有用户 -

SELECT * FROM recettes INNER JOIN users ON recettes.id_user = users.id LIMIT 20

如果您想要与所有用户链接的明确接收 -

SELECT DISTINCT recettes.* FROM recettes INNER JOIN users ON recettes.id_user = users.id LIMIT 20

如果你只想要一个用户 -

SELECT * FROM recettes WHERE id_user = user LIMIT 20

将PHP调用更改为 -

$usersi_sql->bindParam(':user', $user_id);
$usersi_sql->execute()

暂无
暂无

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

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