0

私はwhileループに問題があります..私の問題は以下で説明されています。

$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;

2、3、4 の値を持つ $theature 変数。しかし、$rlt['movie'] の値は、最後の 4 番目の ID 結果のみを示します。私は2,3,4のID値を扱います。

4

3 に答える 3

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++;
}
于 2013-07-25T05:24:08.513 に答える
0

$rlts を同じ変数 $rlt['movie'] に割り当てるたびに。$rlt['movie'][] を試す

于 2013-07-25T05:19:08.330 に答える
0

余分なループを使用しているexplodeメソッドを使用しないでください。この1つのクエリを解決し、このようなwhileループで結果を取得できます

$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++;
}

where クラスでは、文字列として変数に含まれる id からのみチェックされる id IN を使用するため、追加の for ループおよび explod 関数は使用されません。

于 2013-12-25T06:19:07.610 に答える