2016-10-02 6 views
2

ループ中に実行を完了した後、最終値を変数に代入する方法を教えてもらえますか?PHPのWhileクエリの選択

以下のコードでは、行からすべての値をフェッチした後で、応答がwhileループからエコーされるようにしたいと考えていました。

whileループ中にエコーを置くと第1レコードしか表示されないためです。

while ($row = oci_fetch_array($array)) { 
    $response = $row['0']->load(); 
    echo $response; 
} 
+0

最後の行の値を '$ response'に渡します。**原因:ループが実行されるたびに、変数に値が割り当てられます。しかし、それをエコーすると、すべての値を出力として見ることができます。 –

答えて

3

あなたは$responseへの最後の行の値を取得します。

原因:ループが実行されるたびに、変数に値が割り当てられます。しかし、それをエコーすると、すべての値を出力として見ることができます。

だから、あなたが本当に何をする必要があるか、配列内の値を記憶している...

$response = array(); 
while ($row = oci_fetch_array($array)) { 
     $response[] = $row['0']->load(); 
} 

print_r($response); 

あなたはこのことについて、さらに情報が必要な場合は、ちょうど私に知らせてください。

+1

完璧な作業! – Batman

+0

@Batmanしかし、同時に2つの答えを受け入れることはできません.. –

+0

あなたは[oci_fetch_all](http://php.net/manual/en/function.oci-fetch-all.php)を使うことが考えられます。代わりに 'oci_fetch_array'は' while'ループを行う必要はありません – manRo

0

これを試してみてください:

$response = []; 
while ($row = oci_fetch_array($array)) { 
    $response[] = $row['0']->load(); 
} 

var_dump($response); 
+0

これは1行目のみを返します。 – Batman

+0

'$ row ['0']'を追加しました。それは最後までループし、次に行の最初の値を返します原因キーは0です –

0
while ($row = oci_fetch_array($array)) { 
    $response = $row['0']->load(); 
} 
echo $response; 
+0

これは最初の行だけを返しています。 – Batman

+0

ループ内のエコーをエコーし​​ているのは何ですか?何がechoignであるべきですか?コピーして貼り付けてください – Aschab

2

variable assignmentechoのループ内にはwhileループがあるので、目的には役立ちません。

あなたは以下のようにそれをしなければならない: -

$response = array(); // create an array 
while ($row = oci_fetch_array($array)) { 
     $response[] = $row['0']->load(); // assign each value to array 
} 

echo "<pre/>";print_r($response);// print the array 

注: - この配列は今、すべての値を持つことになります。