2013-07-25 150 views
0

我在while循環中有問題..我的問題在下面描述。Php while和for loop問題

$sql = mysql_query($query, $this->db); 
     if(mysql_num_rows($sql) > 0) 
     { 
      $result = array(); 
      while($rlt = mysql_fetch_array($sql,MYSQL_ASSOC)) 
      { 

       $theature = explode(",",$rlt['mw_movie_theature']); 
       //echo 'count'.count($theature).'<br/>'; print_r($theature); 

       for($i = 0; $i<count($theature); $i++) 
       { 
        $sqls = mysql_query("SELECT * FROM mw_theatres WHERE status = 1 AND id='".$theature[$i]."'", $this->db); 
        $rlts = array(); 
        while($rlts = mysql_fetch_array($sqls,MYSQL_ASSOC)) 
        { 
         $rlt['movie'] = $rlts; 
        } 
       } 
       $rlt['value'] = 'true'; 
       $result[] = $rlt; 

      } 

      echo '<pre>';print_r($result);die; 

$ theature變量具有2,3,4個值。但是$ rlt ['movie']的值只能給出最後4個id的結果。我魔杖2,3,4 id值。

+0

你應當標註正確的地方CLASE回答或添加您自己的.. – Kamal

回答

0

因爲每次你把$ rlts賦給同一個變量$ rlt ['movie']。嘗試$ RLT [「電影」] []

+0

謝謝你的工作:) – Karthiga

+0

@ user2484538,所以,你能接受這個答案嗎? – TroyCheng

1

你應該試試這個: -

$sqls = mysql_query("SELECT * FROM mw_theatres WHERE status = 1 AND id='".$theature[$i]."'", $this->db); 
$rlts = array(); 
$j=0; 
while($rlts = mysql_fetch_array($sqls,MYSQL_ASSOC)) 
{ 
    $rlt['movie'][$j] = $rlts; 
    $j++; 
} 
0

不要使用爆炸使用的是額外的循環方法可以解決這一個查詢並得到結果,而環這樣

$sqls = mysql_query("SELECT * FROM mw_theatres WHERE status = 1 AND id IN (".$theature.")", $this->db); 
$rlts = array(); 
$k = 0; 
while($rlts = mysql_fetch_array($sqls,MYSQL_ASSOC)) 
{ 
    $rlt['movie'][$k] = $rlts; 
    $k++; 
} 

在我們使用的ID中,只有從作爲變量作爲一個字符串的ID檢查所以沒有使用額外的for循環和explod功能