2016-11-15 147 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