2015-07-30 4 views
0

Я пытаюсь извлечь первый идентификатор из одной таблицы, а позже после того, как все идентификаторы выбраны, я пытаюсь получить число всех этих идентификаторов.PHP Mysqli запускает запрос один за другим

Моя проблема

  • Как я хочу, чтобы выбрать значение результата завершения первого запроса
  • Я не могу запустить второй запрос после первого запроса завершается оба triggerid в то время

    Первый запрос

    $query ="SELECT * FROM abc WHERE xyz='xyz' And Standard='xyz' "; 
         $data=mysqli_query($mysqli,$query)or die(mysqli_error()); 
         $ID = array(); 
         while($row=mysqli_fetch_array($data)){ 
          $ID[] = $row['ID']; 
    
    
        } 
        $IDall = "'" . implode("','", $ID) . "'"; 
    

Второй запрос

 $query="SELECT mobno FROM euser WHERE UserId IN ($IDall)" ; 
        $data=mysqli_query($mysqli,$query)or die(mysqli_error()); 
        $mobiles = array(); 
        while($row=mysqli_fetch_array($data)){ 
         $mobiles[] = $row['MobileNum']; 

        } 
        $mobilesStr = implode(',', $mobiles); 


        echo $mobilesStr; 


       } 
+0

Знаете ли вы, что триггер - это концепция в базах данных ?. Вы имеете в виду этот триггер или просто используете его случайно? –

+0

@Hanky ​​웃 Panky, я хочу сказать, что второй запрос должен дождаться завершения первого запроса, а второй второй запрос должен получить данные, используя результат первого запроса. –

ответ

0

Попробуйте

SELECT mobno FROM euser WHERE UserId IN (SELECT ID FROM abc WHERE xyz='xyz' And Standard='xyz'); 
+0

Как «SELECT mobno FROM euser WHERE» знает, что он должен получить «MobileNum», используя «ID», по мне «идентификатор» не упоминается в запросе где-нибудь, где –

+0

ошибка 'Warning: mysqli_error() ожидает ровно 1 параметр, 0, указанный в C' –

+1

Вы не можете выбрать несколько столбцов для запроса sub IN –

0

Вам не нужно 2 запросов. Только 1 достаточно

SELECT mobno FROM euser WHERE UserId IN (
    SELECT ID FROM abc ... 
) 
0

Попробуйте

$query ="SELECT * FROM abc WHERE xyz='xyz' And Standard='xyz' "; 
    $data=mysqli_query($mysqli,$query)or die(mysqli_error()); 

    if(mysqli_num_rows($data) > 0) { 
     $ID = array(); 
     while($row=mysqli_fetch_array($data)){ 
     $ID[] = $row['ID']; 
     } 
     $IDall = "'" . implode("','", $ID) . "'"; 

     $query2="SELECT mobno FROM euser WHERE UserId IN ($IDall)" ; 
     $data2=mysqli_query($mysqli,$query2)or die(mysqli_error()); 
     $mobiles = array(); 
     while($row=mysqli_fetch_array($data2)){ 
     $mobiles[] = $row['MobileNum']; 
     } 
     $mobilesStr = implode(',', $mobiles); 
     echo $mobilesStr; 
    } 

В этом втором запросе будет выполняться, когда первый запрос имеет результат.

Смежные вопросы