使用PHP从表1获取申请人并比较ID和从表2获取用户详细信息

时间:2019-01-10 09:16:55

标签: php database mysqli

好,所以我有两个表

  1. 申请人列表-显示所有申请人

enter image description here

  1. 用户表

enter image description here

现在我要通过Post方法提供news_id,我想列出所有users(email,mobile,username)的详细信息,其中 user_authToken user_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();

3 个答案:

答案 0 :(得分:1)

  • 首先,您的命名非常不一致,很难阅读和理解。

  • 第二,请使用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
    }
    

答案 1 :(得分:0)

您可以使用左连接从两个表中获取记录:

       $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();

答案 2 :(得分:0)

您未在userappliers_list表之间指定关系,因此将获得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();