انتقل إلى محتوى الدرس

Filtering Rows with WHERE and Parameters فلترة السجلات بشرط WHERE والمعاملات

ابنِ فلاتر بحث ديناميكية بـ LIKE وIN، وأمّن الترتيب بـ ORDER BY، ونفّذ تقسيم الصفحات Pagination عبر LIMIT وOFFSET في PDO.
1 صفوف تعليمية
PHP
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

صفِّ سجلات قاعدة البيانات بدمج شروط WHERE المنطقية والرقمية مع المعاملات المحضرة المربوطة بأمان.

  • يجب تمثيل كل قيمة ديناميكية داخل شرط WHERE بمعامل محضر (:status و:minPrice) بدلاً من الدمج النصي المباشر.
  • عند الجمع بين AND وOR في استعلام SQL، أحِط مجموعة OR بقوسين لضمان وضوح أولوية التنفيذ.
  • استدعِ fetchAll(PDO::FETCH_ASSOC) بعد $stmt->execute() لجلب كافة الصفوف المطابقة كمصفوفة ترابطية.

يُربط المعاملان :lvl و:max بأمان داخل execute() لإرجاع الدورات التي تحقق الشرطين معاً.

مخطط توضيحي: محاكي الفلترة بشرط WHERE والترتيب الآمن وتقسيم الصفحات في PDO
PHP
<?php
$pdo = new PDO('sqlite::memory:');
$pdo->exec('CREATE TABLE courses (title TEXT, level TEXT, price INT)');
$pdo->exec("INSERT INTO courses VALUES ('PHP Core', 'beginner', 0), ('PDO Pro', 'advanced', 90)");
$stmt = $pdo->prepare('SELECT title FROM courses WHERE level = :lvl AND price <= :max');
$stmt->execute(['lvl' => 'beginner', 'max' => 50]);
$rows = $stmt->fetchAll(PDO::FETCH_COLUMN);
echo "Matched: " . implode(', ', $rows) . "\n";