PHP MySQL Gegevens selecteren
Selecteer gegevens uit een MySQL-database
De SELECT-instructie wordt gebruikt om gegevens uit een of meer tabellen te selecteren:
SELECT column_name(s)
FROM table_name
of we kunnen het * teken gebruiken om ALLE kolommen uit een tabel te selecteren:
SELECT *
FROM table_name
Bezoek onze SQL-tutorial voor meer informatie over SQL .
Selecteer gegevens met MySQLi
In het volgende voorbeeld worden de kolommen id, voornaam en achternaam uit de tabel MyGuests geselecteerd en op de pagina weergegeven:
Voorbeeld (MySQLi objectgeoriënteerd)
<?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) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
} else {
echo "0 results";
}
$conn->close();
?>
Coderegels om uit het bovenstaande voorbeeld uit te leggen:
Eerst stellen we een SQL-query in die de kolommen id, firstname en lastname selecteert uit de MyGuests-tabel. De volgende regel code voert de query uit en plaatst de resulterende gegevens in een variabele met de naam $result.
Vervolgens num_rows()
controleert de functie of er meer dan nul rijen zijn geretourneerd.
Als er meer dan nul rijen worden geretourneerd, fetch_assoc()
plaatst de functie alle resultaten in een associatieve array die we kunnen doorlopen. De while()
lus loopt door de resultatenset en voert de gegevens uit de kolommen id, firstname en lastname uit.
Het volgende voorbeeld toont hetzelfde als het bovenstaande voorbeeld, op de MySQLi procedurele manier:
Voorbeeld (MySQLi procedureel)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
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) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
} else {
echo "0 results";
}
mysqli_close($conn);
?>
U kunt het resultaat ook in een HTML-tabel plaatsen:
Voorbeeld (MySQLi objectgeoriënteerd)
<?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();
?>
Selecteer gegevens met BOB (+ voorbereide verklaringen)
In het volgende voorbeeld worden voorbereide instructies gebruikt.
Het selecteert de kolommen id, voornaam en achternaam uit de MyGuests-tabel en geeft deze weer in een HTML-tabel:
Voorbeeld (BOB)
<?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>";
?>