PHP MySQL : Select

Memilih Data Dari Tabel Database

Sejauh ini kalian telah belajar cara membuat database dan tabel serta memasukkan data. Sekarang saatnya untuk mengambil data apa yang telah dimasukkan dalam tutorial sebelumnya. Pernyataan SQL SELECT digunakan untuk memilih catatan dari tabel database. Sintaks dasarnya adalah sebagai berikut:

Mari kita membuat query SQL menggunakan pernyataan SELECT, setelah itu kita akan mengeksekusi query SQL ini dengan mengirimkannya ke fungsi PHP mysqli_query() untuk mengambil data tabel.

Pertimbangkan tabel database persons kita memiliki catatan berikut:

+----+------------+-----------+----------------------+
| id | first_name | last_name | email                |
+----+------------+-----------+----------------------+
|  1 | Peter      | Parker    | peterparker@mail.com |
|  2 | John       | Rambo     | johnrambo@mail.com   |
|  3 | Clark      | Kent      | clarkkent@mail.com   |
|  4 | John       | Carter    | johncarter@mail.com  |
|  5 | Harry      | Potter    | harrypotter@mail.com |
+----+------------+-----------+----------------------+

Kode PHP dalam contoh berikut memilih semua data yang disimpan dalam tabel persons (menggunakan karakter tanda bintang ( * ) sebagai pengganti nama kolom memilih semua data dalam tabel).

<?php
/* Attempt MySQL server connection. Assuming you are running MySQL
server with default setting (user 'root' with no password) */
$link = mysqli_connect("localhost", "root", "", "demo");
 
// Check connection
if($link === false){
    die("ERROR: Could not connect. " . mysqli_connect_error());
}
 
// Attempt select query execution
$sql = "SELECT * FROM persons";
if($result = mysqli_query($link, $sql)){
    if(mysqli_num_rows($result) > 0){
        echo "<table>";
            echo "<tr>";
                echo "<th>id</th>";
                echo "<th>first_name</th>";
                echo "<th>last_name</th>";
                echo "<th>email</th>";
            echo "</tr>";
        while($row = mysqli_fetch_array($result)){
            echo "<tr>";
                echo "<td>" . $row['id'] . "</td>";
                echo "<td>" . $row['first_name'] . "</td>";
                echo "<td>" . $row['last_name'] . "</td>";
                echo "<td>" . $row['email'] . "</td>";
            echo "</tr>";
        }
        echo "</table>";
        // Free result set
        mysqli_free_result($result);
    } else{
        echo "No records matching your query were found.";
    }
} else{
    echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}
 
// Close connection
mysqli_close($link);
?>
Penjelasan Kode (Procedural style)

Pada contoh di atas, data yang dikembalikan oleh fungsi mysqli_query() disimpan dalam variabel $result. Setiap kali mysqli_fetch_array() dipanggil, ia mengembalikan baris berikutnya dari hasil yang ditetapkan sebagai array. Loop sementara digunakan untuk loop melalui semua baris pada hasil set-nya. Akhirnya nilai masing-masing bidang dapat diakses dari baris, baik dengan meneruskannya ke indeks bidang atau nama bidang ke variabel $row seperti $row[‘id’] atau $row[0], $row[‘first_name’] atau $row[1], $row[‘last_name’] atau $row[2], dan $row[’email’] atau $row[3].

Jika kalian ingin menggunakan loop for, kalian bisa mendapatkan nilai counter loop atau jumlah baris yang dikembalikan oleh query dengan meneruskan variabel $result ke fungsi mysqli_num_rows(). Nilai penghitung loop ini menentukan berapa kali loop harus dijalankan.