البرمجة

بناء استعلام SQL دينامي في PHP باستخدام متغيرات $_POST

في هذا السياق، يسعى المبرمج إلى إنشاء استعلام SQL بشكل دينامي استنادًا إلى المتغير $_POST المستلم، مع استبعاد القيم الفارغة. يظهر المصفوفة $_POST كتالي:

php
Array ( [phone_1] => 3123213 [phone_2] => 432423 [phone_3] => 4234 [phone_4] => 6456456 [phone_5] => 7567576 [phone_6] => )

حيث يحمل كل مفتاح في $_POST اسم حقل في جدول قاعدة البيانات. يريد المبرمج بناء استعلام SQL يأخذ قيم الـ $_POST فقط إذا كانت غير فارغة، وذلك لتحديث الجدول في قاعدة البيانات. الاستعلام الذي يريد الحصول عليه هو كالتالي:

php
UPDATE table_name SET phone_1 = $_POST['phone1'], phone_2 = $_POST['phone2'], phone_3 = $_POST['phone3'], phone_4 = $_POST['phone4'], phone_5 = $_POST['phone5']

يتطلب هذا الأمر استخدام تقنيات البرمجة الدينامية لبناء الاستعلام بناءً على محتوى $_POST. يمكن تحقيق ذلك بواسطة استخدام حلقة تكرار للانتقال عبر المصفوفة وفحص القيم. إليك كيف يمكن تحقيق ذلك في PHP:

php
// المصفوفة $_POST $postArray = $_POST; // الابتداء ببناء الاستعلام $sqlQuery = "UPDATE table_name SET "; foreach ($postArray as $key => $value) { // فحص إذا كانت القيمة غير فارغة if (!empty($value)) { // إضافة جزء من الاستعلام $sqlQuery .= "$key = $value, "; } } // إزالة الفاصلة والمسافة الزائدة في نهاية الاستعلام $sqlQuery = rtrim($sqlQuery, ', '); // إضافة شرط WHERE $sqlQuery .= " WHERE id=$id"; // الاستعلام النهائي echo $sqlQuery;

يقوم الكود بفحص كل قيمة في المصفوفة $_POST ويضيف القيم غير الفارغة إلى الاستعلام. ثم يتمتع بقدرة تكوين الاستعلام النهائي بشكل دينامي مع إضافة شرط WHERE في النهاية.

المزيد من المعلومات

في محاولة لتوسيع فهمك حول كيفية بناء الاستعلام الدينامي في PHP باستخدام المصفوفة $_POST، يمكننا التركيز على بعض النقاط الهامة.

أولًا وقبل كل شيء، يظهر الكود أننا نبدأ بتحديد المصفوفة $_POST في متغير:

php
$postArray = $_POST;

ثم، يتم استخدام حلقة foreach للانتقال عبر عناصر المصفوفة. هنا، يتم فحص كل قيمة إذا كانت غير فارغة باستخدام الدالة empty():

php
foreach ($postArray as $key => $value) { if (!empty($value)) { // بناء جزء من الاستعلام $sqlQuery .= "$key = $value, "; } }

وفي حالة كانت القيمة غير فارغة، يتم إضافة جزء من الاستعلام بشكل دينامي. يُلاحظ أنه تم استخدام المتغير $key الذي يحتوي على اسم الحقل في قاعدة البيانات، و $value الذي يحتوي على القيمة المرتبطة بالمتغير.

ثم يتم إزالة الفاصلة والمسافة الزائدة في نهاية الاستعلام باستخدام rtrim():

php
$sqlQuery = rtrim($sqlQuery, ', ');

وأخيرًا، يتم إضافة شرط WHERE إلى الاستعلام:

php
$sqlQuery .= " WHERE id=$id";

هذا الجزء يضيف شرطًا WHERE للتأكد من تحديث السجل الصحيح في قاعدة البيانات باستخدام الـ $id.

هذا الكود يوفر حلاً ديناميًا وفعالًا لتحديث السجلات في قاعدة البيانات باستخدام بيانات المدخلات المرسلة عبر الطلب POST، وذلك بتوليد استعلام SQL ملائم بناءً على البيانات المتاحة.

زر الذهاب إلى الأعلى