Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

mysql_fetch_array dan while loop di php

Anda pada dasarnya salah paham tentang cara kerja hal-hal ini.

"Array" di mysql_fetch_array bukan array dari semua record, tetapi array data dalam record saat ini.

Dalam kasus Anda, Anda hanya mengambil satu bidang, jadi larik hanya akan berisi satu elemen (yaitu $row[0] ), tetapi prinsipnya sama -- ini adalah larik dari satu record yang baru saja Anda baca.

Hanya data untuk rekaman saat ini yang ada dalam larik pada satu waktu. Itulah yang while lingkaran adalah untuk; itu mengembalikan setiap beban setiap catatan satu demi satu.

Jika Anda ingin membuat array yang berisi semua data, Anda harus melakukannya seperti ini:

$fullData = array()
while($row = mysql_fetch_array($tableIndex) ){
    $fullData[] = $row[0];
}

Itu akan menempatkan semua data yang Anda baca ke dalam satu array besar, yang Anda harapkan. Sekarang Anda dapat melakukan apa yang ingin Anda lakukan dalam pertanyaan:

echo $fullData[0].'<br>';
echo $fullData[1].'<br>';
echo $fullData[2].'<br>';

Semoga membantu.

Perlu ditunjukkan di sini bahwa mysql_xxx() keluarga fungsi yang ditinggalkan dan dianggap usang. Jika Anda baru belajar PHP (sepertinya memang demikian), saya sangat menyarankan Anda berhenti mempelajari fungsi-fungsi ini, dan mempelajari PDO perpustakaan sebagai gantinya. Ini lebih modern dan memiliki banyak fitur yang mysql fungsi tidak dapat menyediakan. Selain itu, versi PHP yang akan datang akan menghapus mysql berfungsi sepenuhnya, jadi Anda harus beralih di beberapa titik -- mungkin juga sekarang, saat Anda masih belajar.

Juga (untuk menjaga hal-hal yang relevan dengan pertanyaan), perpustakaan PDO memiliki fitur yang sebenarnya melakukan apa yang Anda cari dalam satu fungsi:PDO::fetchAll() . Menggunakan metode ini berarti Anda bisa ambil semua data ke dalam satu larik besar dalam satu baris tanpa perlu melakukan perulangan while. Kodenya akan terlihat seperti ini:

$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();
$result = $sth->fetchAll();

(contoh diambil dari manual PHP untuk PDO::fetchAll )



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. menggunakan suka di gabung dengan catatan aktif penyala kode

  2. Mysql - menggunakan kembali nilai yang dihitung

  3. Sumber tidak ditemukan File JAR mysql-connector-java-5.1.20-bin.jar tidak memiliki lampiran sumber

  4. Fungsi MySQL SELECT untuk menjumlahkan data saat ini

  5. Bagaimana cara mereset kata sandi root di MySQL 8.0.11?