Получить кандидатов из таблицы 1 и сравнить идентификатор и получить информацию о пользователе из таблицы 2 с помощью PHP - PullRequest
0 голосов
/ 10 января 2019

Хорошо, поэтому у меня есть две таблицы

  1. Список кандидатов - здесь отображаются все кандидаты

enter image description here

  1. Таблица пользователей

enter image description here

Теперь я предоставляю news_id методом Post, и я хочу перечислить детали всех 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 голосов
/ 10 января 2019

Вы не указали связь между таблицами user и appliers_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();
0 голосов
/ 10 января 2019
  • Прежде всего, ваши имена очень противоречивы, их трудно читать и понимать.

  • Во-вторых, воспользуйтесь оператором 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
    }
    
0 голосов
/ 10 января 2019

Вы можете использовать левое соединение, чтобы получить запись из обеих таблиц:

       $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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...