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
)