Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 两个查询与全选_Php_Mysql_Sql - Fatal编程技术网

Php 两个查询与全选

Php 两个查询与全选,php,mysql,sql,Php,Mysql,Sql,我正在使用Mysql和php 这是我的表格结构:= +----+---------------+--------+--------+--------+--------+--------+--------+ | id | no_of_replies | reply1 | reply2 | reply3 | reply4 | reply5 | reply6 | +----+---------------+--------+--------+--------+--------+--------+---

我正在使用Mysql和php

这是我的表格结构:=

+----+---------------+--------+--------+--------+--------+--------+--------+
| id | no_of_replies | reply1 | reply2 | reply3 | reply4 | reply5 | reply6 |
+----+---------------+--------+--------+--------+--------+--------+--------+
| -- | --            |        | --     | --     | --     | --     | --     |
+----+---------------+--------+--------+--------+--------+--------+--------+
对于一个问题,用户最多可以给出六个回复。大多数情况下,用户会给出4-5个回复。我会存储回复的数量(没有回复的数量)和所有回复(回复1,回复2,…)。 大多数情况下,reply5和reply6是空的

因此,当显示数据时,我有两个选项

备选案文1:- 执行单个查询并获取所有响应-

SELECT * FROM `responses` WHERE `id`='xyz'
备选案文2:- 进行2次查询并获得所需的响应

SELECT `no_of_repies` FROM `responses` WHERE `id`='xyz'
如果结果是3

responses
中选择
reply1
reply2
reply3
,其中
id
='XYZ'

注:=
我这样问是因为这个表格将被经常使用,需要快速给出答案

您应该阅读有关数据库规范化的内容。在您的情况下,我会这样做:

tabel
---------------------------------
id    reply     date   questinID
获取1人对1个问题的回复量

SELECT COUNT(*) FROM tabel WHERE id=userid AND questionID=questionid;
要为1个用户获取1个问题的答复,请执行以下操作:

SELECT * FROM tabel WHERE id=userid AND questionID=questinid ORDER BY date;

为什么希望查询返回未知数量的列?您将如何以编程方式处理结果?获取空/空结果的开销是可以忽略的,使用RDMS将简化您的工作。不要让
reply1,reply2…
,而是将它们放在一个单独的表中。这样你就不必担心没有回复了。只需从表2中选择回复文本,其中外键=主键是用户id或问题id,您如何知道另一个?阿斯普林我不知道如何将这些列放在单独的表中,以及如何解决问题problem@sid你怎么知道这些回答属于哪个问题?