从表1中获取申请者,使用PHP比较id并从表2中获取用户详细信息
好的,我有两张桌子从表1中获取申请者,使用PHP比较id并从表2中获取用户详细信息,php,database,mysqli,Php,Database,Mysqli,好的,我有两张桌子 申请人列表-显示所有申请人 用户表 现在我通过Post方法提供news\u id,我想列出所有用户(电子邮件、手机、用户名)的详细信息,其中user\u authToken和user\u authToken的值相同。有人能用PHP帮我解决这个逻辑吗 $job_id = $_POST['job_id']; $resultSet = $con->query("SELECT appliers_list.news_id AS jobid ,
news\u id
,我想列出所有用户(电子邮件、手机、用户名)
的详细信息,其中user\u authToken和user\u authToken的值相同。有人能用PHP帮我解决这个逻辑吗
$job_id = $_POST['job_id'];
$resultSet = $con->query("SELECT appliers_list.news_id AS jobid ,
appliers_list.user_authToken AS user,
user.user_name AS username,
user.mobile AS mobile,
FROM appliers_list,user
WHERE appliers_list.news_id = '$job_id'
ORDER BY appliers_list.id DESC
");
$rows = $resultSet->fetch_assoc();
您可以使用left join从两个表中获取记录:
$job_id = !empty($_POST['job_id']) ? intval($_POST['job_id']) : 0;
$resultSet = $con->query("SELECT appliers_list.*,users.email
FROM appliers_list
left join users on appliers_list.user_authToken = users.user_authToken
WHERE news.news_id = '$job_id'
ORDER BY news.id DESC
");
$rows = $resultSet->fetch_assoc();
您没有指定
user
和appliers\u列表
表之间的关系,因此您将获得user
中的所有行。在SELECT
列表的末尾还有一个额外的逗号
$job_id = $_POST['job_id'];
$resultSet = $con->query("SELECT appliers_list.news_id AS jobid ,
appliers_list.user_authToken AS user,
user.user_name AS username,
user.mobile AS mobile
FROM appliers_list
JOIN user ON appliers_list.user_authToken = user.user_authToken
WHERE appliers_list.news_id = '$job_id'
ORDER BY appliers_list.id DESC
");
$rows = $resultSet->fetch_assoc();
- 首先,你的名字很不一致,很难阅读和理解
- 第二,请使用prepare语句,否则将打开系统进行SQL注入
$news_id = $_POST['job_id']; $stmt = $con->prepare("SELECT email, mobile, user_name FROM users WHERE user_authtoken in (select user_authToken from appliers_list where news_id = ?)"); $stmt->bind_param("i", $news_id); $stmt->execute(); $resultSet = $stmt->get_result(); while($row = $resultSet->fetch_assoc()) { // data manipulation here }
user\u authtoken
列的简单连接吗?我尝试过,但它在表中列出了所有结果如何显示您的尝试,以便我们可以看到您做错了什么并帮助您修复。我已经编辑了我尝试的内容,检查我的查询,请告诉我我做错了什么您忘了加入user
表,显然。为什么要使用左连接而不是内部连接?我认为可能会有来自同一用户的多条新闻,所以我们的目标是获取主要数据是新闻,然后用户详细信息是次要的。内部连接将返回多行。left join的唯一区别是它将返回没有匹配用户的新闻项。是的,它们都显示来自两个表的记录。但左连接也会显示不在两个表中的记录。如果我必须从另一个表中的“profile\u url”列中获取一个值,其中公共值为“user\u authoken”,并合并所有结果,那么应该使用join
连接3个表