PHP Membuat Multidimensional Array dari Query Database MySQL

Last Updated on 12 years by Mas Herdi

Jadi, yah ini gara-gara tugas saya akhirnya posting pertanyaan ke StackOverflow. Saya sebenarnya newbie di PHP karena selama ini lebih fokus ke bahasa yang lain, seperti Java. Tapi bagi saya PHP adalah bahasa yang cocok ketika kita hanya ingin membuat sesuatu yang seadanya (to get jobs done).

Oke, intinya saya ingin membuat suatu array multidimensi yang mempunya format seperti di bawah ini. Sedangkan hasilnya saya ambil dari database MySQL melalui select query. Semalaman saya mencobanya, dari sekitar jam 9 malam sampai jam 1 malam. Karena stuck dan gak ngerti PHP (maklum newbie) akhirnya saya memutuskan untuk tanya di StackOverflow (asumsi nggak punya teman yang ngerti PHP, kalau punya, mau tanya udah kemaleman juga).

Format array-nya adalah sebagai berikut :

$books =  array(

    "8" => array(   "my girl" => 2.5,
                    "the god delusion" => 3.5,
                    "tweak" => 3, "the shack" => 4,
                    "the birds in my life" => 2.5,
                    "new moon" => 3.5),

    "14" => array(    "the last lecture" => 2.5,
                      "the god delusion" => 3.5,
                      "the noble wilds" => 3, "the shack" => 3.5,
                      "the birds in my life" => 2.5, "new moon" => 1)
     );

Sedangkan data yang ada di database punya format seperti ini :

ID  value   title
------------------------------------------------------------------
8   5   Clara Callan
8   5   Where You'll Find Me: And Other Stories
8   5   The Middle Stories
8   5   Jane Doe
8   6   The Witchfinder (Amos Walker Mystery Series)
8   6   More Cunning Than Man: A Social History of Rats an...
8   7   Goodbye to the Buttermilk Sky
9   6   Beloved (Plume Contemporary Fiction)
12  10  If I'd Known Then What I Know Now: Why Not Learn f...
14  5   Mary-Kate & Ashley Switching Goals (Mary-Kate ...
14  5   Tell Me This Isn't Happening
14  6   Flood : Mississippi 1927
16  9   Airframe
17  7   Death in the Clouds
17  5   Bant/Spec.Last of the Breed
17  6   Piercing the Darkness
17  3   Prophet
19  7   Prague : A Novel

Jawaban

Setelah menunggu sekitaran 3 jam (tidur dulu pastinya), pukul 4 pagi saya cek ternyata sudah ada tiga jawaban. Entah karena masih ngantuk atau gimana, waktu itu saya coba semua saran yang diusulkan tapi nggak ada yang berhasil. Akhirnya saya utak-atik lagi sendiri, dan akhirnya bisa.

Solusinya adalah sebagai berikut :

        $result = mysql_query($mySelectQuery)or die("<br/><br/>".mysql_error());
        $books = array();
        while ($row = mysql_fetch_array($result))
        {
            $userID = $row{'User-ID'};
            $books[$userID][$row{'Book-Title'}] =  $row{'Book-Rating'};
        }

Namun anehnya ketika sorenya saya cek lagi, ternyata ada jawaban yang caranya persis seperti cara saya, padahal waktu pagi hari saya cek jawaban belum ada yang benar. haha

Jadi penjelasan dari solusinya, karena itu array multidimensi maka kita juga harus membuat dua buah indeks ‘[][]’. Kalau saya baca-baca dari tutorial yang lain ada juga yang pakai foreach() dan sebagainya, menandakan banyak sekali terjadi redundancy di PHP. Saya sendiri nggak ngerti darimana method, misalnya mysql_fetch_array() berasal. Karena bukan object-oriented, jadi mungkin yang mau belajar akan kesulitan mengingat semua method, karena tidak ada referensi class tempat asal method tersebut. Yah tapi seenggaknya seperti yang saya katakan di atas, PHP cocok untuk kita yang hanya ingin get things done. Semoga membantu.





Download aplikasi kami di Google Play Store


Tutorial Menarik Lainnya :

2 Comments
  1. BJuser June 20, 2013

Leave a Reply

Your email address will not be published. Required fields are marked *

TWOH&Co.