2017-04-25 63 views
-1

我有一個運行鍼對Oracle數據庫PHP - 運行1個查詢與多個while語句

SELECT * FROM TABLE1; 

和輸出的SQL查詢PHP頁面 - 我想這取決於的值5個while語句運行記錄集 - 這樣的事情....

我想1基於記錄集值的查詢和5 WHILE語句 - 我該怎麼做?據我所知,你只能運行1個基於1個查詢的WHILE語句......?

// MOVIE='movieA' 
while ($row = oci_fetch_array($query, OCI_ASSOC+OCI_RETURN_NULLS)) { 

// data here 

} 

// MOVIE='movieB' 
while ($row = oci_fetch_array($query, OCI_ASSOC+OCI_RETURN_NULLS)) { 

// data here 

} 

// MOVIE='movieC' 
while ($row = oci_fetch_array($query, OCI_ASSOC+OCI_RETURN_NULLS)) { 

// data here 

} 

// MOVIE='movieD' 
while ($row = oci_fetch_array($query, OCI_ASSOC+OCI_RETURN_NULLS)) { 

// data here 

} 

// MOVIE='movieE' 
while ($row = oci_fetch_array($query, OCI_ASSOC+OCI_RETURN_NULLS)) { 

// data here 

} 

感謝 - 什麼是做到這一點的最好方法是什麼?

+0

如果你有10000 000部電影?你只需要1個循環.. –

回答

2

會收集第一:

while ($row = oci_fetch_array($query, OCI_ASSOC+OCI_RETURN_NULLS)) { 
    $collect[]=$row; 
} 

然後使用該數組經常你會

foreach($collect as $row) { 
    // data here 
} 

爲什麼你只能獲取一個結果集一次?

請仔細閱讀給定的文檔爲:

PDO http://php.net/manual/en/book.pdo.php
的mysqli http://php.net/manual/en/book.mysqli.php

也許一點點關於編寫的算法https://en.wikipedia.org/wiki/Algorithm

+0

我不知道很多PHP。但''collect [] = $ row;'感覺不對,沒有$ collect [i]'或者其他東西來避免覆蓋同一個變量 –

+2

@JuanCarlosOropeza'$ collect [] = $ row;'等於' array_push($ collect,$ row);'覺得更好? http://php.net/manual/en/function.array-push.php – JustOnUnderMillions

+0

我目前有5個記錄的查詢 - 只是想知道是否有更好的方法 – Ronald

-1

,你還可以做下面的代碼,爲什麼你需要多個while循環

while ($row = oci_fetch_array($query, OCI_ASSOC+OCI_RETURN_NULLS)) { 

    swith($row){ 

    case 1 : 
    //do here 
    break; 

    case 2 : 
    //do here 
    break; 

      } 

    } 
+0

我不能真正使用case語句,因爲輸出在頁面上的不同位置。我需要單獨調用基於值 – Ronald

+0

的數據@Ronald yes可以根據值對數據進行單獨調用 –