Interroger les champs et réponses de l'enquête

J’utilise ce plugin Discourse Surveys : GitHub - discourse/discourse-surveys

Lors de la soumission des sondages, je constate que les boutons radio, les cases à cocher et les listes déroulantes semblent s’enregistrer comme NULL dans la base de données. Il semble également qu’une réponse ait été enregistrée deux fois :

2 « J'aime »

La valeur pour

sont stockées dans une table séparée.

Cela devrait vous amener là où vous devez être :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

J’ai ajouté une option de requête par utilisateur (lorsqu’elle est laissée vide, elle interroge tous les utilisateurs par sondage), mais n’hésitez pas à supprimer

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

si cela ne vous intéresse pas.

3 « J'aime »

Ah, je n’avais même pas remarqué cette table supplémentaire ! Merci !

4 « J'aime »

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