Sabtu, 12 November 2011

Memproses Query Dengan mysql_fetch_array

Setelah hasil query di dapat, sudah saatnya kita memanfaatkan hasil tersebut. Ada beberapa fungsi yang disediakan oleh PHP untuk membaca hasil query, tapi dalam artikel ini kita hanya akan membahas penggunaan mysql_num_rows, mysql_affected_rows dan mysql_fetch_array (dan mysql_fetch_rows, mysql_fetch_assoc). Fungsi mysql_num_rows digunakan untuk mendapatkan banyaknya record (sebaris data) yang dihasilkan. Fungsi ini hanya memiliki sebuah parameter yaitu hasil query. Fungsi ini akan menampilkan banyak baris pada tabel hasil query, sehingga fungsi ini akan menghasilkan pesan kesalahan jika parameter yang diberikan bukan merupakan hasil query yang berhasil dilakukan. Fungsi mysql_affected_rows digunakan untuk mendapatkan banyaknya record yang "terkena dampak" dari query yang dilakukan sebelumnya. Query yang dilakukan bisa berupa INSERT, UPDATE atau DELETE.

Fungsi mysql_fetch_array, mysql_fetch_rows, dan mysql_fetch_assoc merupakan fungsi untuk mengambil sebaris record dari hasil query dan menyimpannya dalam sebuah variabel array. Yang membedakan dari ketiga fungsi tersebut adalah pemberian index data (untuk setiap kolom/field yang ada) dalam array. Fungsi mysql_fetch_rows akan memberikan index berupa angka, fungsi mysql_fetch_assoc akan memberikan index berupa nama field sesuai data yang bersangkutan, sedangkan fungsi mysql_fetch_array akan memberikan index berupa angka dan nama field.

Pada artikel kali ini, kita hanya akan menggunakan salah satu dari ketiga fungsi tadi, yaitu mysql_fetch_array. Jika ingin membaca seluruh baris record, ada beberapa cara yang bisa dilakukan.

Cara pertama adalah dengan mendapatkan banyaknya record lalu melakukan looping sebanyak itu untuk mengambil nilai setiap recordnya.

Contoh:


Cara kedua adalah dengan mengambil nilai setiap recordnya sampai tidak ada lagi record yang tersisa.

Contoh:


Setelah variabel array yang berisi sebaris data didapatkan, selanjutnya kita perlu untuk memproses data-data yang ada. Untuk melakukannya, kita hanya perlu untuk menggunakan nilai-nilai yang ada di elemen array tadi.

Contoh:


Kamis, 10 November 2011

Mengambil Sebuah Query Dari Database

mysql_query()
      Digunakan untuk melakukan eksekusi perintah SQL untuk memanipulasi database yang berhasil dilakukan koneksinya menggunakan mysql_select_db().


Sintaks : 

$hasil = mysql_query(”SQL Statement”);

 
      mysql_query akan menghasilkan sebuah resource atau nilai false jika query nya gagal, pada penggunaan statement select. Sedangkan pada penggunaan delete, insert atau update, akan dihasilkan nilai true (jika query nya sukses) atau false (jika query nya gagal)
      Untuk menjalankan sebuah query digunakan fungsi PHP mysql_query(query, [database]), dimana query adalah query MySQL sedangkan database (bersifat opsional) adalah sebuah koneksi database, yang nilai defaultnya adalah koneksi terbuka terakhir (disini, koneksi tersebut diwakili $link).
     Contoh, untuk melakukan query "SELECT * FROM mahasiswa ORDER BY npm ASC", sintaksnya adalah :

<?php    mysql_query("SELECT * FROM mahasiswa ORDER BY npm ASC"); ?>

     Metode langsung ini kurang fleksibel. Pada umumnya digunakan metode 2 langkah, yakni memakai variable untuk statement query-nya (missal $query" atau $sql_query), kemudian penulisan programnya menjadi mysql_query($sql_query). Berikut ini adalah contohnya :

$sql_query = "SELECT * FROM mahasiswa ORDER BY npm ASC";

Kemudian menggunakan variable untuk menampung hasil query, yaitu :

$result = mysql_query ($sql_query, $link);

Untuk menangkap kesalahan, yakni untuk keperluan debug, dapat ditulis sebagai berikut:

<?php   $result = mysql_query ($sql_query, $link)  or die (mysql_error () . " Query nya adalah :" . $sql_query); ?>

     Jika fungsi mysql_query menghasilakn false, PHP akan menghentikan script tersebut dan mencetak sebuah pesan error dari MySQL (seperti "you have an error in your SQL syntax"). Jadi akhirnya penulisan kode untuk menjalankan query-nya menjadi (diasumsikan koneksi databasenya adalah $link) :

<?php  $sql_query = "SELECT * FROM mahasiswa ORDER BY npm ASC"; $result = mysql_query ($sql_query, $link)  or die (mysql_error () . " Query nya adalah :" . $sql_query); ?>