J'ai un tableau de questions et un tableau de réponses. Je ne vais pas afficher tous les champs, mais la structure de base est la suivante
table des questions
+-----------------+----------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+----------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| name | varchar(50) | NO | UNI | NULL | |
+-----------------+----------------------+------+-----+---------+----------------+
tableau des réponses
+---------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| text | mediumtext | NO | | NULL | |
| question_id | int(10) unsigned | NO | MUL | NULL | |
+---------------+------------------+------+-----+---------+----------------+
Ce que j'essaie de faire, c'est d'obtenir toutes les réponses textuelles pour un ensemble particulier de questions, en un seul ensemble de résultats. Pour cela, je fais ce qui suit
$sql = "select text, GROUP_CONCAT(text SEPARATOR ',') AS text
FROM answers
WHERE question_id IN (11, 13, 14, 15, 22, 72);
Cela donne quelque chose comme ceci, qui semble correct
Array
(
[0] => Array
(
[text] => data1,data2,data3,data4,data5,data6
)
)
Cependant, ce que j'essaie de faire maintenant, c'est de classer cet ensemble de résultats dans un ordre particulier. Pour l'instant, j'ai ceci
$sql = "select text, GROUP_CONCAT(text SEPARATOR ',') AS text
FROM answers
WHERE question_id IN (11, 13, 14, 15, 22, 72)
ORDER BY FIELD(question_id, 13, 11, 72, 15, 22, 14);
Mais le résultat est toujours dans le même ordre que ci-dessus.
Comment puis-je obtenir les résultats dans l'ordre que je recherche ?
Merci