انتخاب داده در MySQL در PHP

از ویکی‌کد، دانشنامهٔ برنامه‌نویسی
پرش به ناوبری پرش به جستجو
Main Page Tutorial
Php-menu.png
موارد آموزشی
فرم‌ها در PHP
PHP پیشرفته
شیء گرایی در PHP
پایگاه داده MySQL
۱پایگاه داده MySQL
۲اتصال به MySQL
۳ساخت پایگاه داده
۴ساخت جدول
۵وارد کردن داده
۶دریافت شناسهٔ آخرین سطر
۷وارد کردن چندین داده
۸دستور Prepared
۹انتخاب داده
۱۰دستور Where
۱۱دستور Order By
۱۲حذف داده
۱۳بروزرسانی داده
۱۴محدودسازی داده
XML در PHP
AJAX در PHP
مثال‌های PHP
مرجع PHP


انتخاب داده از یک پایگاه داده MySQL

دستور SELECT برای انتخاب داده از یک یا چند جدول استفاده می‌شود:[۱]

SELECT column_name(s) FROM table_name

یا می‌توانیم از کاراکتر * برای انتخاب تمامی ستون‌های یک جدول استفاده کنیم:

SELECT * FROM table_name

برای یادگیری بیشتر SQL، آموزش SQL را ببینید.

انتخاب داده با MySQLi

مثال زیر ستون‌های id ،firstname و lastname را از جدول MyGuests انتخاب می‌کند و آنها را روی صفحه نشان می‌دهد:

مثال (شیء گرایی در MySQLi)

 1 <?php
 2 $servername = "localhost";
 3 $username = "username";
 4 $password = "password";
 5 $dbname = "myDB";
 6 
 7 // Create connection
 8 $conn = new mysqli($servername, $username, $password, $dbname);
 9 // Check connection
10 if ($conn->connect_error) {
11     die("Connection failed: " . $conn->connect_error);
12 }
13 
14 $sql = "SELECT id, firstname, lastname FROM MyGuests";
15 $result = $conn->query($sql);
16 
17 if ($result->num_rows > 0) {
18     // output data of each row
19     while($row = $result->fetch_assoc()) {
20         echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
21     }
22 } else {
23     echo "0 results";
24 }
25 $conn->close();
26 ?>


مشاهدهٔ نتیجه


توضیح تکه‌کدهایی از مثال بالا:

ابتدا، ما یک دستور کوئری SQL را تنظیم می‌کنیم که ستون‌های id ،firstname و lastname را از جدول MyGuests انتخاب می‌کند. خط بعدی کد کوئری را اجرا می‌کند و نتیجه داده را درون یک متغیر به نام $result قرار می‌دهد.

سپس، تابع function num_rows() بررسی می‌کند که آیا بیش از صفر سطر برگردانده شده‌است.

اگر بیش از صفر سطر برگردانده شده باشد، تابع fetch_assoc() تمامی نتایج را درون یک آرایه associative قرار می‌دهد که ما می‌توانیم به وسیله حلقه‌ها در آن پیمایش انجام دهیم. حلقه while() در بین نتایج پیمایش انجام می‌دهد و داده از ستونهای id ,firstname و lastname در خروجی چاپ می‌کند.

مثال زیر همانند مثال بالا به روش رویه ای در MySQLi است:

مثال (برنامه نویسی رویه ای در MySQLi)

 1 <?php
 2 $servername = "localhost";
 3 $username = "username";
 4 $password = "password";
 5 $dbname = "myDB";
 6 
 7 // Create connection
 8 $conn = mysqli_connect($servername, $username, $password, $dbname);
 9 // Check connection
10 if (!$conn) {
11     die("Connection failed: " . mysqli_connect_error());
12 }
13 
14 $sql = "SELECT id, firstname, lastname FROM MyGuests";
15 $result = mysqli_query($conn, $sql);
16 
17 if (mysqli_num_rows($result) > 0) {
18     // output data of each row
19     while($row = mysqli_fetch_assoc($result)) {
20         echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
21     }
22 } else {
23     echo "0 results";
24 }
25 
26 mysqli_close($conn);
27 ?>


مشاهدهٔ نتیجه


شما همچنین می‌توانید نتایج را درون یک جدول HTML قرار بدهید:

مثال (شیء گرایی در MySQLi)

 1 <?php
 2 $servername = "localhost";
 3 $username = "username";
 4 $password = "password";
 5 $dbname = "myDB";
 6 
 7 // Create connection
 8 $conn = new mysqli($servername, $username, $password, $dbname);
 9 // Check connection
10 if ($conn->connect_error) {
11     die("Connection failed: " . $conn->connect_error);
12 }
13 
14 $sql = "SELECT id, firstname, lastname FROM MyGuests";
15 $result = $conn->query($sql);
16 
17 if ($result->num_rows > 0) {
18     echo "<table><tr><th>ID</th><th>Name</th></tr>";
19     // output data of each row
20     while($row = $result->fetch_assoc()) {
21         echo "<tr><td>".$row["id"]."</td><td>".$row["firstname"]." ".$row["lastname"]."</td></tr>";
22     }
23     echo "</table>";
24 } else {
25     echo "0 results";
26 }
27 $conn->close();
28 ?>


مشاهدهٔ نتیجه


انتخاب داده ها با PDO (+ دستورات Prepared)

مثال زیر از دستورات prepared استفاده می‌کند.

این دستورات ستون‌های id ،firstname و lastname را از جدول MyGuests انتخاب می‌کند و آنها را درون یک جدول HTML نمایش می‌دهد:

مثال (PDO)

 1 <?php
 2 echo "<table style='border: solid 1px black;'>";
 3 echo "<tr><th>Id</th><th>Firstname</th><th>Lastname</th></tr>";
 4 
 5 class TableRows extends RecursiveIteratorIterator {
 6     function __construct($it) {
 7         parent::__construct($it, self::LEAVES_ONLY);
 8     }
 9 
10     function current() {
11         return "<td style='width:150px;border:1px solid black;'>" . parent::current(). "</td>";
12     }
13 
14     function beginChildren() {
15         echo "<tr>";
16     }
17 
18     function endChildren() {
19         echo "</tr>" . "\n";
20     }
21 }
22 
23 $servername = "localhost";
24 $username = "username";
25 $password = "password";
26 $dbname = "myDBPDO";
27 
28 try {
29     $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
30     $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
31     $stmt = $conn->prepare("SELECT id, firstname, lastname FROM MyGuests");
32     $stmt->execute();
33 
34     // set the resulting array to associative
35     $result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
36     foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) {
37         echo $v;
38     }
39 }
40 catch(PDOException $e) {
41     echo "Error: " . $e->getMessage();
42 }
43 $conn = null;
44 echo "</table>";
45 ?>


مشاهدهٔ نتیجه



منابع آموزشی