Home » PHP » Select Data Database MySQL Dengan PHP

Select Data Database MySQL Dengan PHP

by Hanifah Nurbaeti
by Hanifah Nurbaeti

Section Artikel

Pilih Data Dari Database MySQL

Pernyataan SELECT digunakan untuk memilih data dari satu atau lebih tabel:

SELECT column_name(s) FROM table_name

atau kita dapat menggunakan karakter * untuk memilih SEMUA kolom dari tabel:

SELECT * FROM table_name

Pilih Data Dengan MySQLi

Contoh berikut memilih kolom id, firstname dan lastname dari tabel MyGuests dan menampilkannya di halaman:

Contoh (MySQLi Object-oriented) :

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Buat Koneksi
$conn = new mysqli($servername, $username, $password, $dbname);
// Periksa Koneksi
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
  // data keluaran dari setiap baris
  while($row = $result->fetch_assoc()) {
    echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
  }
} else {
  echo "0 results";
}
$conn->close();
?>
  /*Output
  id: 1 - Name: John Doe
id: 2 - Name: Mary Moe
id: 3 - Name: Julie Dooley
  */

Baris kode yang akan dijelaskan dari contoh di atas:

Pertama, kita akan menyiapkan kueri SQL yang memilih kolom id, firstname dan lastname dari tabel MyGuests. Baris kode berikutnya menjalankan kueri dan memasukkan data yang dihasilkan ke dalam variabel yang disebut $result.

Kemudian, function num_rows() memeriksa apakah ada lebih dari nol baris yang dikembalikan.

Jika ada lebih dari nol baris yang dikembalikan, fungsi fetch_assoc() menempatkan semua hasil ke dalam array asosiatif yang bisa kita putar. Perulangan while() melewati set hasil dan mengeluarkan data dari kolom id, firstname dan lastname.

Contoh berikut menunjukkan hal yang sama seperti contoh di atas, dengan cara prosedural MySQLi:

Contoh (MySQLi Prosedural) :

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Buat Koneksi
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Periksa Koneksi
if (!$conn) {
  die("Connection failed: " . mysqli_connect_error());
}

$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
  // data keluaran dari setiap baris
  while($row = mysqli_fetch_assoc($result)) {
    echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
  }
} else {
  echo "0 results";
}

mysqli_close($conn);
?>
  /*Output
  id: 1 - Name: John Doe
  id: 2 - Name: Mary Moe
  id: 3 - Name: Julie Dooley
  */

Kita juga bisa meletakkan hasilnya di tabel HTML:

Contoh (MySQLi Object-oriented) :

<!DOCTYPE html>
<html>
<head>
<style>
table, th, td {
    border: 1px solid black;
}
</style>
</head>
<body>

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    echo "<table><tr><th>ID</th><th>Name</th></tr>";
    // output data of each row
    while($row = $result->fetch_assoc()) {
        echo "<tr><td>" . $row["id"]. "</td><td>" . $row["firstname"]. " " . $row["lastname"]. "</td></tr>";
    }
    echo "</table>";
} else {
    echo "0 results";
}

$conn->close();
?>

</body>
</html>

Output :

Pilih Data Dengan PDO (+ Pernyataan Prepare)

Contoh berikut menggunakan pernyataan prepare.

Memiliki kolom id, firstname dan lastname dari tabel MyGuests dan menampilkannya dalam tabel HTML:

Contoh (PDO) :

<!DOCTYPE html>
<html>
<body>

<?php
echo "<table style='border: solid 1px black;'>";
 echo "<tr><th>Id</th><th>Firstname</th><th>Lastname</th></tr>";

class TableRows extends RecursiveIteratorIterator {
    function __construct($it) {
        parent::__construct($it, self::LEAVES_ONLY);
    }

    function current() {
        return "<td style='width: 150px; border: 1px solid black;'>" . parent::current(). "</td>";
    }

    function beginChildren() {
        echo "<tr>";
    }

    function endChildren() {
        echo "</tr>" . "\n";
    }
}

$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";

try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $stmt = $conn->prepare("SELECT id, firstname, lastname FROM MyGuests");
    $stmt->execute();

    // set the resulting array to associative
    $result = $stmt->setFetchMode(PDO::FETCH_ASSOC);

    foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) {
        echo $v;
    }
}
catch(PDOException $e) {
    echo "Error: " . $e->getMessage();
}
$conn = null;
echo "</table>";
?>

</body>
</html>

Output :

You may also like