انتخاب داده در MySQL در 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 ?>
منابع آموزشی