با عرض سلام خدمت کاربران محترم سایت پی وی لرن. در این جلسه از سری جلسات کار با پایگاه داده MySQL در PHP ، قصد داریم تا کار با دستور SELECT در MySQL یا انتخاب اطلاعات از پایگاه داده MySQL آشنا شویم.
دستور SELECT برای انتخاب اطلاعات از یک یا چند جدول استفاده می شود.
ساختار دستور:
1 | SELECT column_name(s) FROM table_name |
می توانیم از کاراکتر * برای انتخاب تمام ستون های یک جدول استفاده کنیم:
1 | SELECT * FROM table_name |
مثال زیر ستون های id, firstname و lastname را از جدول MyGuests انتخاب کرده و در صفحه نمایش می دهد:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <?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("ارتباط برقرار نشد: " . $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(); ?> |
توضیحات کد بالا:
ابتدا ما یک کوئری برای انتخاب ستون های firstname, id و lastname از جدول MyGuests تنظیم می کنیم.
خط بعدی کوئری را اجرا می کند و داده های حاصل را در متغیری به نام result$ قرار می دهد.
سپس تابع ()num_rows بررسی می کند که آیا بیشتر از صفر ردیف برگشتی وجود دارد یا نه.
اگر که بیشتر از صفر ردیف برگشتی وجود داشت، تابع ()fetch_assoc تمام نتایج را در یک آرایه انجمنی قرار می دهد که با استفاده از آن می توانیم حلقه ایجاد کنیم.
حلقه ()while نتایج را پیمایش می کند و داده ها را از ستون های id, firstname و lastname در خروجی قرار می دهیم.
مثال زیر مشابه مثال بالا است. اینبار با MySQLi رویه گرا:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | <?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); ?> |
همچنین می توانید نتایج را در یک جدول HTML قرار دهید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | <?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(); ?> |
مثال زیر ستون های id, firstname و lastname را از جدول MyGuests انتخاب کرده و در جدول HTML نمایش می دهد. (از دستورات آماده در این مثال استفاده کرده ایم) :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | <?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>"; ?> |
جلسه کار با دستور SELECT در MySQL نیز به پایان رسید.
جلسه بعد کار با دستور DELETE در MySQL را خواهیم آموخت. با ما همرا باشید.
همچنین می توناید نظرات و پیشنهادات خود را از طریق بخش نظرات با ما در میان بگذارید.