как выполнить 2 запроса в одной и той же функции, используя mysql db и slim 3 PHP framework

Я пытаюсь получить пользователей, которые были запрошены друзьями в приложении ios, и вернуть их в список запросов друзей в приложении. Для этого я использую функцию PHP, которая запрашивает таблицу уведомлений для user_id, от которого она была отправлена, а затем возвращает все все строки, которые соответствуют этому типу уведомления и помечены как непрочитанные. Затем я хотел бы запросить мою пользовательскую таблицу и вернуть пользователей, которые отправили запрос на этот конкретный user_id. Вот код, который я построил:

function getSquadRequests($req, $res) {
   global $db;

   $user_id = validateUserAuthentication($req);

   if ($user_id) {
       $query = $db->prepare(
         'SELECT * 
          FROM tblNotification 
          WHERE notification_to_id   = :user_id 
            AND notification_type    = 3 
            AND notification_is_read = 0
         ');

       $query->bindParam(':user_id', $user_id);

       if ($query->execute()) {
           $user = $query->fetch(PDO::FETCH_NAMED);

           // if user exist
           if ($user) {
               $query = $db->prepare(
                   'select * from tblUser where user_id = :not_from_id'
               );
               $query->bindParam(':not_from_id', $user['notification_from_id']);

               if ($query->execute()) {
                   $data = $query->fetchAll(PDO::FETCH_ASSOC);
               }

               $newRes = makeResultResponseWithObject($res, 200, $data);

           }
       } else {
           $newRes = makeResultResponseWithString(
               $res, 400, $query->errorInfo()[2]
           );
   }

   return $newRes;
}

person NightHawk95    schedule 06.06.2017    source источник


Ответы (1)


Если я вас правильно понял, то ваша проблема связана только с sql, и этот запрос должен вернуть ожидаемых пользователей:

SELECT u.* 
FROM tblUser AS u
    LEFT JOIN tblNotification AS n 
    ON u.user_id = n.notification_from_id
WHERE n.notification_to_id    = :user_id
  AND n.notification_type     = 3 
  AND n.notification_is_read  = 0
  AND n.notification_from_id <> :not_from_id
person zedling    schedule 06.04.2018