سؤال

أقوم بإنشاء أول موقع PHP/MySQL وأرغب في إرجاع نتائج البحث من حقلين في جدول واحد داخل قاعدة البيانات - الفئة والموقع (يوجد إجمالي 15 حقلاً في الجدول، ولكن هناك حقلان فقط مطلوبان لـ البحث).

سيكون لكل خيار قائمة منسدلة تسرد عددًا ثابتًا من الاختيارات في كل حقل - على سبيل المثال، من المحتمل أن يكون هناك 15 موقعًا أو نحو ذلك، و7 أو 8 فئات.

أريد أن يكون المستخدم قادرًا على تحديد عنصر من إحدى القائمتين المنسدلتين أو كلتيهما، ثم النقر فوق الزر "بحث" أو @Go، ليتم عرض النتائج عليه.

كما ذكرنا، أنا جديد تمامًا على PHP/MySQL، لذا أعتذر إذا كان سؤالي "بسيطًا" بعض الشيء، وآمل أن يوجهني شخص ما في الاتجاه الصحيح.

شكرا دان

يحرر:

براد، كونر، ليس لدي أي شيء حتى الآن فأنا أشعر بالخوف فيما يتعلق بتفاصيل استعلام البحث، لقد بدأت للتو في البحث عن كيفية القيام بذلك ومن ثم النقص الكامل في الكود في سؤالي!

ولكن لكي أحاول أن أكون أكثر تحديدًا، فإن الحقول الوحيدة التي أرغب في إرجاع النتائج منها هي الموقع وفئة الوظيفة - وهما حقلان يحتويان على حوالي 15 حقلاً في الجدول الخاص بي وتم تعبئتهما بالفعل بشروط ثابتة - على سبيل المثال، قد يحتوي الموقع على لندن، مانشستر، قد يكون لدى Leeds وCatagory وظائف إدارية وتنظيمية وكتابية وما إلى ذلك - لا يوجد خيار للزائر لإدخال مصطلح جديد، فقط اختر من القائمة المنسدلة للعناصر التي تم ترتيبها مسبقًا.

الحقول الأخرى في جدولي ليست ذات صلة بالبحث (الراتب، الشركة، البريد الإلكتروني للاتصال، إلخ)، لذلك... أعتقد أنني بحاجة إلى استعلامين فقط، ويمكن أيضًا عرض النتائج إذا قمت بإرسال واحد فقط (على سبيل المثال، أنت لست منزعجًا بشأن مكان العمل، فقط التخصص، لا يزال بإمكانك العثور على جميع النتائج وتحديد ما إذا كنت ترغب في الانتقال).فهل هذا أفضل أو أكثر فائدة؟

شكرا لمساعدتكم حتى الآن.دان

هل كانت مفيدة؟

المحلول

يقوم المستخدم بإدخال استعلام بحث وترغب في تحديد الصفوف من الجدول الخاص بك التي تحتوي على هذا الاستعلام أو تطابقه تمامًا؟إذا كان الأمر كذلك، شيء من هذا القبيل

لإذا category يتضمن $search_query

SELECT category, location 
FROM table 
WHERE concat(' ', category, ' ') LIKE '%$search_query%'

أو إذا كان exact مطابقة ستستخدمها لشرطك بدلاً من ذلك:

WHERE category = '$search_query'

ربما أكون خارج المسار رغم ذلك، تحتاج إلى التحديد كما قال براد

نصائح أخرى

دان ، تحتاج إلى بناء بيان SQL بشكل ديناميكي.يوجد أدناه قطعة بسيطة من الكود لتوضيح ما أعنيه.احرص دائمًا على تجاوز بيانات المستخدم لإثبات حقن SQL.

Genacodicetagpre

بدون أي تفاصيل حول بنية الجدول والبيانات المعنية ، ستكون الأساسيات شيئًا مثل: Genacodicetagpre

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top