أنا أستخدم إضافة استطلاعات Discourse هذه: GitHub - discourse/discourse-surveys
عند إرسال الاستطلاعات، أرى أن أزرار الراديو ومربعات الاختيار والقوائم المنسدلة تبدو وكأنها تسجل كـ NULL في قاعدة البيانات. ويبدو أيضًا أنها سجلت إجابة واحدة مرتين:
أنا أستخدم إضافة استطلاعات Discourse هذه: GitHub - discourse/discourse-surveys
عند إرسال الاستطلاعات، أرى أن أزرار الراديو ومربعات الاختيار والقوائم المنسدلة تبدو وكأنها تسجل كـ NULL في قاعدة البيانات. ويبدو أيضًا أنها سجلت إجابة واحدة مرتين:
القيمة لـ
مخزنة في جدول منفصل.
هذا يجب أن يوصلك إلى حيث تحتاج أن تكون ![]()
-- [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)
إذا لم تكن مهتمًا بذلك.
آه، لم أنتبه حتى إلى تلك الطاولة الإضافية! شكراً لك!
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.