انتخاب داده (MySQL Select Data)
در «انتخاب داده MySQL»، با دستور SELECT رکوردها را می خوانیم. «ستون (Column)» یعنی فیلدهای جدول. همچنین «سطر (Row)» یعنی هر رکورد. حالا نمونه ها را ساده تمرین می کنیم.
قاعده ساده SELECT
می توانیم ستون های خاص را بخوانیم. همچنین می توانیم همه ستون ها را با * بگیریم.
SELECT id, firstname, lastname
FROM MyGuests;
انتخاب داده با MySQLi (شی گرا)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
$conn = new mysqli($servername, $username, $password, $dbname);
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) {
while ($row = $result->fetch_assoc()) {
echo "id: " . $row["id"] . " - Name: " . $row["firstname"] . " " . $row["lastname"] . "<br>";
}
} else {
echo "0 results";
}
$conn->close();
?>
انتخاب داده با MySQLi (رویه ای)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
$conn = mysqli_connect($servername, $username, $password, $dbname);
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) {
while ($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["id"] . " - Name: " . $row["firstname"] . " " . $row["lastname"] . "<br>";
}
} else {
echo "0 results";
}
mysqli_close($conn);
?>
نمایش خروجی در جدول HTML (MySQLi)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
$conn = new mysqli($servername, $username, $password, $dbname);
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>";
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 + Prepared
در PDO، با prepared کار می کنیم. سپس جدول HTML می سازیم و نمایش می دهیم.
<?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();
$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>";
?>
گام های عملی
- اتصال بساز و خطا را چک کن.
- SELECT بنویس و اجرا کن.
- نتیجه را پیمایش و چاپ کن.
نکته: برای فیلترها از WHERE استفاده کن. سپس فقط رکوردهای لازم می آیند.
منابع و ادامه مسیر
- دستورات آماده برای کوئری امن تر.
- انتخاب داده MySQL با WHERE برای فیلتر دقیق.
- انتخاب داده MySQL مرجع همین صفحه.
جمع بندی سریع
- SELECT ستون ها را برمی گرداند.
- * یعنی همه ستون ها.
- نتیجه را پیمایش و چاپ کن.
- با WHERE دقیق تر انتخاب کن.