2016-11-15 61 views
1

我試圖讓明天的會議安排,並獲取用ms的sql表中保存的行中的用戶id作爲逗號分隔值,使用id我必須得到他們的從另一個表聯繫號碼我想這樣的事情在這裏,我可以得到第一陣列的價值只有我知道我犯了一些錯誤,但在這裏我不知道在哪裏爆炸存儲在多個行的mssql中的多維數組

$date=date("d-m-Y", time()+86400); 
    $start_time=strtotime($date.", 12:01 AM"); 
    $end_time=strtotime($date.", 11:59 PM"); 
    $sql=$db->Query("select * from pp_meeting where m_date > ? and m_date < ?", array($start_time, $end_time)); 

    while($row=$db->FetchRow($sql)){ 
     $users[]=explode(",", $row['m_users']); 
     foreach($users as $us){ 
       foreach($us as $u){ 
       $sql=$db->Query("select contact_no from pp_users where user_id=?", array($u)); 
       echo $result=$db->FetchOne($sql);echo "<br/>"; 
       } 
      } 
     } 

謝謝

+1

不要有在loop.It MySQL查詢將創建一個請求的每一個時間和花費太多time.Use IN查詢 – user3040610

+0

@ user3040610感謝您的解決方案,如果我把foreach外部while循環它工作正常。 – Tigris

+0

,如果評論幫助你,請投票。 – user3040610

回答

1

可以使用1嵌套查詢而不是循環查詢

"select contact_no from pp_users where user_id in 
(select user_id from pp_meeting where m_date > ? and m_date < ?)" 

,或者您可以使用加入

"select contact_no 
from pp_users join pp_meeting on user_id=user_id 
where m_date > ? and m_date < ?" 
+0

感謝您的解決方案,如果我把foreach放在外面的同時循環它工作正常 – Tigris