我正在构建此表单:http://pwmn.73dpi.com/questionnaire.php并在数据库中将问题和答案放在两个单独的表中。
以下是两个db表的确切结构:
表格[问题]
id
order
text
表格[答案]
id
fk_question
order
text
points
答案表与fk_question字段中的问题相关。
这是我的疑问:
SELECT
Q.id, Q.text, R.text, R.order AS rorder
FROM
`questions` Q
LEFT JOIN reponses R
ON Q.id = R.fk_question
上述查询的结果是:
id qtext rtext rorder
1 Vous discutez avec un commerçant et malgré le fait... Vous passez à l'anglais. Si ça peut lui faire plai... 1
1 Vous discutez avec un commerçant et malgré le fait... Vous lui faites remarquer et lui demandez s'il peu... 2
1 Vous discutez avec un commerçant et malgré le fait... Vous continuez à lui parler en français, mais vous... 3
2 En faisant vos courses, vous remarquez que la boît... Vous achetez le produit sans en faire de cas. 1
2 En faisant vos courses, vous remarquez que la boît... Vous achetez le produit, mais vous prenez auparava... 2
2 En faisant vos courses, vous remarquez que la boît... Vous achetez le produit et vous contactez la compa... 3
3 Vous revenez d'un voyage à l'étranger et devez vou... Vous faites valoir votre droit de vous faire servi... 1
3 Vous revenez d'un voyage à l'étranger et devez vou... Vous prenez place devant le guichet d'à côté, mai... 2
3 Vous revenez d'un voyage à l'étranger et devez vou... Vous prenez place devant le guichet d'à côté, et v... 3
4 Dans la salle d'attente chez le médecin, vous comm... Vous arrachez discrètement la page du mot croisé p... 1
4 Dans la salle d'attente chez le médecin, vous comm... Vous laissez le mot croisé et replacez le magazine... 2
4 Dans la salle d'attente chez le médecin, vous comm... Vous prenez la peine d'effacer les réponses que vo... 3
5 Dans des toilettes publiques, vous remarquez qu'un... Vous sortez un stylo et vous corrigez l'erreur. 1
5 Dans des toilettes publiques, vous remarquez qu'un... Vous sortez un stylo et biffez l'erreur en ajoutan... 2
5 Dans des toilettes publiques, vous remarquez qu'un... Vous ne vous en préoccupez pas. 3
6 Vous êtes chargé de mener une réunion d'affaire av... Vous proposez que la réunion se déroule en françai... 1
6 Vous êtes chargé de mener une réunion d'affaire av... Vous proposez que la réunion se déroule en anglais... 2
6 Vous êtes chargé de mener une réunion d'affaire av... Vous proposez que la réunion se déroule en françai... 3
7 Lors d'une visite guidée de Calgary, le guide tour... Vous levez la main pendant la visite pour corriger... 1
7 Lors d'une visite guidée de Calgary, le guide tour... Vous ne dites rien tout de suite, mais vous ne man... 2
7 Lors d'une visite guidée de Calgary, le guide tour... Vous retournez à vos courriels sur votre téléphone... 3
8 Vous venez de vous acheter un ordinateur portable ... Vous gardez l'anglais comme langue principale. 1
8 Vous venez de vous acheter un ordinateur portable ... Vous gardez l'anglais pour l'instant, histoire de ... 2
8 Vous venez de vous acheter un ordinateur portable ... Vous réinstallez le disque immédiatement et choisi... 3
9 Vous discutez en anglais au téléphone avec un prép... Vous lui proposez de revenir à l'anglais. 1
9 Vous discutez en anglais au téléphone avec un prép... Vous prenez votre mal en patience, et lorsque vous... 2
9 Vous discutez en anglais au téléphone avec un prép... Vous continuez la conversation en français mais vo... 3
10 Alors que vous faites vos courses, un homme vous d... Vous atténuez quelque peu les propos du client, qu... 1
10 Alors que vous faites vos courses, un homme vous d... Vous demandez au client de se trouver un(e) autre ... 2
10 Alors que vous faites vos courses, un homme vous d... Vous traduisez ses propos tels quels, en soulignan... 3
现在我正在使用两个单独的数据库调用来完成问题和答案检索。我知道这不是最佳的,可以通过某种方式使用SQL连接来完成。
以下是问题的当前SQL:
SELECT * FROM questions Q ORDER BY Q.order
和答案:
SELECT * FROM reponses R WHERE R.fk_question = $questionId ORDER BY R.order
使用这个SQL我可以得到所有答案,但后来我失去了实际的问题......
SELECT
*
FROM
questions Q
LEFT JOIN reponses R
ON Q.id = R.fk_question
ORDER BY
Q.order
理想的回答是一排一排,一列包含列出答案的数组......
我打开了更改db结构或sql调用...我已经能够获得每个问题的1row和一个列出所有答案的列使用这个sql:
SELECT Q.id,Q.text, GROUP_CONCAT(R.text), R.order AS rorder
FROM `questions` Q
LEFT JOIN reponses R ON Q.id = R.fk_question
GROUP BY Q.id
但不太确定这种格式是否最好... id需要处理文本字段中的逗号并在php中转换为实际数组...
现在有两个单独的电话似乎更清楚并且有效...
这是我在这个网站上的第一篇文章,所以如果有什么不清楚的话请告诉我,并提前多多感谢!