Kamis, 21 April 2011

[PHP-MySQL] Menghindari Kesalahan Interpretasi mysql_fetch_array

Dalam dunia pemrograman web dengan PHP dan penggunaan database MySQL tentu saja banyak yang berhubungan dengan beberapa fungsi sebagai berikut...

mysql_connect()
mysql_select_db()
mysql_query()
mysql_affected_rows()
mysql_fetch_row()
mysql_fetch_array()

dll

Untuk yang disebut terakhir kali diatas, mysql_fetch_array, memiliki fungsi melakukan arraying data yang didapat dari hasil QUERY MySQL.

Meninjau SQL query untuk data, maka kita bisa tentukan bahwa proses query hanya ada 4:
Penampilan data (SELECT),
pengubahan data (UPDATE),
penghapusan data (DELETE),
dan penambahan data (INSERT).

Untuk keempat perintah tersebut, SELECT memiliki proses yang berbeda dengan yang lain. Jika yang lain menghasilkan perubahan pada tabel, maka SELECT tidak menghasilkan perubahan. SELECT juga berbeda karena menghasilkan kumpulan data yang harus ditampilkan. Sehingga proses mysql_query() untuk perintah SQL SELECT, harus dilanjutkan dengan melakukan arraying data (mysql_fetch_array(), mysql_fetch_row(), mysql_fetch_assoc()), atau penghitungan data (mysql_num_rows()).

Berikut contoh kasus dalam sebuah penampilan data:

NoNamaAlamat
1AnuConcat
2 Badu Mino


Perintah SQL akan menjadi:

SELECT * FROM `biodata`

Sedangkan kode PHP akan menjadi

<?php
mysql_connect($host,$user,$pass);
mysql_select_db($db);
?>


<table><tr>
<th>No</th><th>Nama</th><th>Alamat</th></tr>

<?php

$q="SELECT * FROM `biodata"
$e=mysql_query($q);
$i=1;
while($r=mysql_fetch_array($e)){
?>

<tr>

<td>
<?php echo $i; ?>
</td><td><?php echo $i; ?></td>
<td><?php echo $i; ?></td>
</tr>


<?php

$i++;
}
?>
</table>

Skrip tersebut akan menghasilkan tampilan data tabel seperti yang ada pada tabel diatas. Fungsi mysql_fetch_array memang hebat.

Andai kita punya skrip seperti ini :

<?php
$q="SELECT * FROM `biodata"
$e=mysql_query($q);
$r=mysql_fetch_array($e);
?>


Kemudian saya bongkar dengan menambahkan print_r(), sehingga menjadi seperti berikut:

<?php
$q="SELECT * FROM `biodata"
$e=mysql_query($q);
$r=mysql_fetch_array($e);
print_r();
?>

Maka

Tidak ada komentar:

Posting Komentar