PHP MySQL WHERE Cümlesini Kullanın
MySQL Veritabanından Verileri Seçin ve Filtreleyin
WHERE yan tümcesi kayıtları filtrelemek için kullanılır.
WHERE yan tümcesi, yalnızca belirli bir koşulu karşılayan kayıtları çıkarmak için kullanılır.
SELECT column_name(s)
FROM table_name WHERE column_name operator value
SQL hakkında daha fazla bilgi edinmek için lütfen SQL eğitimimizi ziyaret edin .
MySQLi ile Verileri Seçin ve Filtreleyin
Aşağıdaki örnek, soyadının "Doe" olduğu MyGuests tablosundan id, ad ve soyad sütunlarını seçer ve sayfada görüntüler:
Örnek (MySQLi Nesneye yönelik)
<?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 WHERE
lastname='Doe'";
$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();
?>
Yukarıdaki örnekten açıklanacak kod satırları:
Öncelikle MyGuests tablosundan id, ad ve soyad sütunlarını seçen SQL sorgusunu, soyadının "Doe" olduğu yerde kurduk. Sonraki kod satırı sorguyu çalıştırır ve elde edilen verileri $result adlı bir değişkene koyar.
Ardından, function num_rows()
döndürülen sıfırdan fazla satır olup olmadığını kontrol eder.
Döndürülen sıfırdan fazla satır varsa, işlev fetch_assoc()
tüm sonuçları döngüye girebileceğimiz bir ilişkisel diziye koyar. Döngü , while()
sonuç kümesi boyunca döner ve id, ad ve soyad sütunlarından verileri çıkarır.
Aşağıdaki örnek, yukarıdaki örnekle aynı şeyi MySQLi prosedürel şekilde gösterir:
Örnek (MySQLi Prosedürü)
<?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
WHERE lastname='Doe'";
$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);
?>
Sonucu bir HTML tablosuna da koyabilirsiniz:
Örnek (MySQLi Nesneye yönelik)
<?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 WHERE
lastname='Doe'";
$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();
?>
PDO ile Veri Seçin (+ Hazır İfadeler)
Aşağıdaki örnek, hazırlanmış ifadeleri kullanır.
Soyadı "Doe" olan Misafirlerim tablosundan kimlik, ad ve soyadı sütunlarını seçer ve bir HTML tablosunda görüntüler:
Örnek (PDO)
<?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
WHERE lastname='Doe'");
$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>";
?>