



نستخدم جملة SELECT عند بناء جملة SQL لتحديد البيانات من جدول او عدة جداول لعرضها.
نستطيع تحديد مسميات الأعمدة Columns المراد عرض بياناتها مثال:
SELECT column_name(s) FROM table_name أو نستطيع تحديد جميع الأعمدة لعرض بياناتهم باستخدام علامة النجمة * مثال:
SELECT * FROM table_name يجب ان تكون لديك معرفة في بناء جمل SQL ؛ لتستطيع تنفيذ مختلف العمليات على قواعد البيانات ، حيث انه طريقة تنفيذ هذه الجمل هي واحدة في PHP ، تختلف النتيجة باختلاف الجملة المنفذة فقط.
تحديد البيانات:
في هذه الأمثلة سوف نقوم بتحديد كل من id و name و email من الجدول users وعرضها بالمتصفح.
مثال على MySQLi Object-Oriented:
<?php $servername = "localhost"; $username = "root"; $password = "root"; $dbname = "new-DB"; // إجراء الإتصال $conn = new mysqli($servername, $username, $password, $dbname); // التحقق من الإتصال if ($conn->connect_error) { die("فشل الإتصال: " . $conn->connect_error); } // لتحديد البيانات SQL بناء جملة $sql = "SELECT id, name, email FROM users"; // تنفيذ الإستعلام $result = $conn->query($sql); // التحقق من عدد النتائج if ($result->num_rows > 0) { // نقوم بعرض البيانات للمتصفح while($row = $result->fetch_assoc()) { echo "id: " . $row["id"]. " - Name: " . $row["name"]. " " . $row["email"]. "<br>"; } } else { echo "0 results"; } // إغلاق الإتصال $conn->close(); تفصيل عمل الأكواد :
بعد عملية الإتصال بقاعدة البيانات بنجاح ، قمنا ببناء جملة SQL لتحديد كل من id و name و email من الجدول users ، ثم بعدها قمنا بتنفيذ هذه الجملة بواسطة الدالة conn->query$ ، وحفظ النتيجة داخل المتغير result$.
قمنا بالتحقق من عدد النتائج المخزنة في المتغير result$ باستخدام result->num_rows$ ، بداخل الدالة الشرطية if فاذا كان عدد النتائج أكثر من صفر نقوم بعرض هذه النتائج باستخدام حلقة التكرار while loop ، او عرض رسالة بانه لاتوجد نتائج لعرضها.
اذا كان الناتج اكبر من صفر فإننا نقوم بتخزين جميع النتائج على شكل مصفوفة من النوع associative array باستخدام result->fetch_assoc$ في المتغير row$ ، و باستخدام حلقة التكرار while نقوم بالمرور على البيانات المخزنة وعرضها بالمتصفح.
عند عمل الكود بالمتصفح بنجاح سيكون الناتج كالتالي:
مثال على MySQLi Procedural:
<?php $servername = "localhost"; $username = "root"; $password = "root"; $dbname = "new-DB"; // إجراء الإتصال $conn = mysqli_connect($servername, $username, $password, $dbname); // التحقق من الإتصال if (!$conn) { die("فشل الإتصال: " . mysqli_connect_error()); } // لتحديد البيانات SQL بناء جملة $sql = "SELECT id, name, email FROM users"; // تنفيذ الإستعلام $result = mysqli_query($conn, $sql); // التحقق من عدد النتائج if (mysqli_num_rows($result) > 0) { // نقوم بعرض البيانات للمتصفح while($row = mysqli_fetch_assoc($result)) { echo "id: " . $row["id"]. " - Name: " . $row["name"]. " " . $row["email"]. "<br>"; } } else { echo "0 results"; } // إغلاق الإتصال mysqli_close($conn); شبيه بطريقة عمل المثال السابق الفرق اننا نستخدم الدوال مباشرة بدل الكلاس.
عند عمل الكود بالمتصفح بنجاح سيكون الناتج كالتالي:
مثال على PDO:
<?php $servername = "localhost"; $username = "root"; $password = "root"; $dbname = "new-DB"; try { // إجراء الإتصال $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); // تعديل نوع معالج الأخطاء $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // لتحديد البيانات SQL بناء جملة $stmt = $conn->prepare("SELECT id, name, email FROM users"); // تنفيذ الإستعلام $stmt->execute(); // تغير نوع المصفوفة للتعامل معها بسهولة $stmt->setFetchMode(PDO::FETCH_ASSOC); // نقوم بعرض البيانات للمتصفح foreach($stmt->fetchAll() as $key => $value) { echo "id: " . $value["id"]. " - Name: " . $value["name"]. " " . $value["email"]. "<br>"; } } catch(PDOException $e) { echo $sql . "<br>" . $e->getMessage(); } // إغلاق الإتصال $conn = null; لاحظ: في هذا المثال بعد اجراء الإتصال بقاعدة البيانات بنجاح وتخزينه في المتغير conn$ ، قمنا ببناء جملة SQL وتجهيزها وتخزينها بالمتغير stmt$ ، ثم استخدمنا stmt->execute$ لتنفيذ عملية الإستعلام بقاعدة البيانات بدلا من استخدام conn->exec$ ، بعدها قمنا بتغير نوع البيانات الذي نرغب بالتعامل معه الى مصفوفة من نوع associative array بواسطة stmt->setFetchMode$ فهي احد خصائص PDO ، ثم استخدمنا حلقة foreach للمرور على البيانات وعرضها بالمتصفح.
يمكنك معرفة المزيد عن حلقات التكرار وطريقة عملها بواسطة زيارة هذا الدرس.
اضغط هنا
عند عمل الكود بالمتصفح بنجاح سيكون الناتج كالتالي:
نستطيع تحديد مسميات الأعمدة Columns المراد عرض بياناتها مثال:
SELECT column_name(s) FROM table_name أو نستطيع تحديد جميع الأعمدة لعرض بياناتهم باستخدام علامة النجمة * مثال:
SELECT * FROM table_name يجب ان تكون لديك معرفة في بناء جمل SQL ؛ لتستطيع تنفيذ مختلف العمليات على قواعد البيانات ، حيث انه طريقة تنفيذ هذه الجمل هي واحدة في PHP ، تختلف النتيجة باختلاف الجملة المنفذة فقط.
تحديد البيانات:
في هذه الأمثلة سوف نقوم بتحديد كل من id و name و email من الجدول users وعرضها بالمتصفح.
مثال على MySQLi Object-Oriented:
<?php $servername = "localhost"; $username = "root"; $password = "root"; $dbname = "new-DB"; // إجراء الإتصال $conn = new mysqli($servername, $username, $password, $dbname); // التحقق من الإتصال if ($conn->connect_error) { die("فشل الإتصال: " . $conn->connect_error); } // لتحديد البيانات SQL بناء جملة $sql = "SELECT id, name, email FROM users"; // تنفيذ الإستعلام $result = $conn->query($sql); // التحقق من عدد النتائج if ($result->num_rows > 0) { // نقوم بعرض البيانات للمتصفح while($row = $result->fetch_assoc()) { echo "id: " . $row["id"]. " - Name: " . $row["name"]. " " . $row["email"]. "<br>"; } } else { echo "0 results"; } // إغلاق الإتصال $conn->close(); تفصيل عمل الأكواد :
بعد عملية الإتصال بقاعدة البيانات بنجاح ، قمنا ببناء جملة SQL لتحديد كل من id و name و email من الجدول users ، ثم بعدها قمنا بتنفيذ هذه الجملة بواسطة الدالة conn->query$ ، وحفظ النتيجة داخل المتغير result$.
قمنا بالتحقق من عدد النتائج المخزنة في المتغير result$ باستخدام result->num_rows$ ، بداخل الدالة الشرطية if فاذا كان عدد النتائج أكثر من صفر نقوم بعرض هذه النتائج باستخدام حلقة التكرار while loop ، او عرض رسالة بانه لاتوجد نتائج لعرضها.
اذا كان الناتج اكبر من صفر فإننا نقوم بتخزين جميع النتائج على شكل مصفوفة من النوع associative array باستخدام result->fetch_assoc$ في المتغير row$ ، و باستخدام حلقة التكرار while نقوم بالمرور على البيانات المخزنة وعرضها بالمتصفح.
عند عمل الكود بالمتصفح بنجاح سيكون الناتج كالتالي:

<?php $servername = "localhost"; $username = "root"; $password = "root"; $dbname = "new-DB"; // إجراء الإتصال $conn = mysqli_connect($servername, $username, $password, $dbname); // التحقق من الإتصال if (!$conn) { die("فشل الإتصال: " . mysqli_connect_error()); } // لتحديد البيانات SQL بناء جملة $sql = "SELECT id, name, email FROM users"; // تنفيذ الإستعلام $result = mysqli_query($conn, $sql); // التحقق من عدد النتائج if (mysqli_num_rows($result) > 0) { // نقوم بعرض البيانات للمتصفح while($row = mysqli_fetch_assoc($result)) { echo "id: " . $row["id"]. " - Name: " . $row["name"]. " " . $row["email"]. "<br>"; } } else { echo "0 results"; } // إغلاق الإتصال mysqli_close($conn); شبيه بطريقة عمل المثال السابق الفرق اننا نستخدم الدوال مباشرة بدل الكلاس.
عند عمل الكود بالمتصفح بنجاح سيكون الناتج كالتالي:

<?php $servername = "localhost"; $username = "root"; $password = "root"; $dbname = "new-DB"; try { // إجراء الإتصال $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); // تعديل نوع معالج الأخطاء $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // لتحديد البيانات SQL بناء جملة $stmt = $conn->prepare("SELECT id, name, email FROM users"); // تنفيذ الإستعلام $stmt->execute(); // تغير نوع المصفوفة للتعامل معها بسهولة $stmt->setFetchMode(PDO::FETCH_ASSOC); // نقوم بعرض البيانات للمتصفح foreach($stmt->fetchAll() as $key => $value) { echo "id: " . $value["id"]. " - Name: " . $value["name"]. " " . $value["email"]. "<br>"; } } catch(PDOException $e) { echo $sql . "<br>" . $e->getMessage(); } // إغلاق الإتصال $conn = null; لاحظ: في هذا المثال بعد اجراء الإتصال بقاعدة البيانات بنجاح وتخزينه في المتغير conn$ ، قمنا ببناء جملة SQL وتجهيزها وتخزينها بالمتغير stmt$ ، ثم استخدمنا stmt->execute$ لتنفيذ عملية الإستعلام بقاعدة البيانات بدلا من استخدام conn->exec$ ، بعدها قمنا بتغير نوع البيانات الذي نرغب بالتعامل معه الى مصفوفة من نوع associative array بواسطة stmt->setFetchMode$ فهي احد خصائص PDO ، ثم استخدمنا حلقة foreach للمرور على البيانات وعرضها بالمتصفح.
يمكنك معرفة المزيد عن حلقات التكرار وطريقة عملها بواسطة زيارة هذا الدرس.
اضغط هنا
عند عمل الكود بالمتصفح بنجاح سيكون الناتج كالتالي:
