0

私はその奇妙な問題を抱えています。

while ループ内の配列 (私の場合は $smt) は、30 個の値すべてでいっぱいになりたくありません (テスト クエリによって 30 行が返されます)。最新の値のみが含まれます。ループを確認しましたが、問題ありません。30回繰り返し、30回num_rows返します。たとえば、キーを使用する配列を埋めようとしたときにのみ発生します$array[$key]。たとえば、ループ内で印刷し、キーなしで配列を使用すると、本来のように機能します。

多分私は何かが欠けているかもしれませんが、今は問題を見つけることができません。

コード:

if($res = $con->prepare($query)) {

    call_user_func_array(array($res,'bind_param'),$bind);

    if($res->execute()) {

        $res -> bind_result($iStopID,$iDate,$iTime,$iOd,$iDo,$iType);

        while ($res -> fetch()) {

            $smt['date']=$iStopID;

        }

        //test
        print_r($smt['date']);


    } else error($con->error);

    $res -> close();

} else error($con->error);
4

2 に答える 2

1

配列キーは一意です。while ループでは、配列に $iStopID を割り当て、文字列 '$iDate' をキーとして使用しています。

 $smt['$iDate'] = $iStopID;

問題は、キーを変数 $iDate の内容ではなく、文字列 '$iDate' として毎回設定していることです。このため、取得できるキーは 1 つだけです (キーは一意であるため)。これを試して:

 $smt[$iDate] = $iStopID;

お役に立てれば!

于 2013-08-13T22:30:30.037 に答える