استعلام عن حقول الاستبيان وردوده

أنا أستخدم إضافة استطلاعات Discourse هذه: GitHub - discourse/discourse-surveys

عند إرسال الاستطلاعات، أرى أن أزرار الراديو ومربعات الاختيار والقوائم المنسدلة تبدو وكأنها تسجل كـ NULL في قاعدة البيانات. ويبدو أيضًا أنها سجلت إجابة واحدة مرتين:

إعجابَين (2)

القيمة لـ

مخزنة في جدول منفصل.

هذا يجب أن يوصلك إلى حيث تحتاج أن تكون :slight_smile:

-- [params]
-- null int :user_id
-- string :name

SELECT s.name, s.post_id, sf.question, COALESCE(sr.value, sfo.html) AS value, sr.user_id, sr.created_at as responded_at
FROM surveys s
JOIN survey_fields sf ON sf.survey_id = s.id
JOIN survey_responses sr ON sr.survey_field_id = sf.id
LEFT JOIN survey_field_options sfo ON sfo.id = sr.survey_field_option_id
WHERE s.name = :name
AND (:user_id IS NULL OR sr.user_id = :user_id)
ORDER BY sr.user_id

لقد أضفت خيار استعلام لكل مستخدم (عندما يُترك فارغًا فإنه يستعلم عن كل مستخدم لكل استبيان)، ولكن لا تتردد في إسقاط

AND (:user_id IS NULL OR sr.user_id = :user_id)

إذا لم تكن مهتمًا بذلك.

3 إعجابات

آه، لم أنتبه حتى إلى تلك الطاولة الإضافية! شكراً لك!

4 إعجابات

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.