Saya menggunakan entri daripada pangkalan data untuk mengisi baris dan lajur dalam jadual. Tetapi saya tidak boleh mengakses data yang dikembalikan oleh SQL menggunakan mysqli_fetch_array()
dua kali. Saya perlu mengulangi hasil mysqli beberapa kali. Ini tidak berfungsi:
//Copy the result $db_res = mysqli_query( $db_link, $sql ); $db_res2=$db_res; //Top row while ($row = mysqli_fetch_array( $db_res, MYSQL_ASSOC)) { echo "<td>". $row['Title'] . "</td>"; } //leftmost column while ($row = mysqli_fetch_array( $db_res2, MYSQL_ASSOC)) { echo "<tr>"; echo "<td>". $row['Title'] . "</td>"; ..... echo "</tr>"; }
Bagaimana cara memohon mysqli_fetch_array
kepada hasil yang sama dua kali?
Anda hendaklah sentiasa mengasingkan manipulasi data daripada output.
Mula-mula pilih data anda:
Perhatikan bahawa mulai PHP 5.3 anda boleh menggunakan
fetch_all()
dan bukannya gelung eksplisit:Kemudian gunakannya seberapa banyak yang diperlukan:
Anda tidak perlu
while
循环,也根本不需要使用mysqli_fetch_array()
!Anda boleh menggunakannya dalam
mysqli_result
对象本身上循环多次。它实现了Traversable
接口,允许在foreach
.Walau bagaimanapun, anda harus memisahkan logik pangkalan data daripada logik paparan, untuk mencapai ini adalah lebih baik menggunakan
fetch_all(MYSQLI_ASSOC)
dalam logik pangkalan data untuk mendapatkan semula semua rekod ke dalam tatasusunan.Jika anda mengekstrak semua data ke dalam tatasusunan, anda boleh mengulang tatasusunan seberapa banyak kali yang anda mahu.