Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.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 捕获用作表名的行ID_Php_Mysql_Sql - Fatal编程技术网

Php 捕获用作表名的行ID

Php 捕获用作表名的行ID,php,mysql,sql,Php,Mysql,Sql,为了节省阅读时间和麻烦,不要使用此方法存储调查。正如答案中所指出的,这是难以置信的糟糕编程,更不用说对小猫的危险了 如果这个问题有点复杂,请原谅。我正在开发一个程序,允许用户创建调查并发布给用户 长话短说,我有一张这样的桌子: **survey_info** id bigint(20) Auto_increment Primary Key title varchar(255) category bigint(20) active t

为了节省阅读时间和麻烦,不要使用此方法存储调查。正如答案中所指出的,这是难以置信的糟糕编程,更不用说对小猫的危险了

如果这个问题有点复杂,请原谅。我正在开发一个程序,允许用户创建调查并发布给用户

长话短说,我有一张这样的桌子:

**survey_info**

id          bigint(20)     Auto_increment     Primary Key
title       varchar(255)
category    bigint(20)
active      tinyint(1)
length      int(11)
redirect    text
现在,在创建调查时,还将创建一个新表,该表是定制的,用于保存该调查的输入。我为这些新表使用的命名模式是survey{survey\u id}

我希望做的是在调查列表中,把对一项调查的回答数放在它的右边

好的,现在我真正的问题是,在我用来收集可用调查列表的同一个查询中,是否有方法检索收集表survey_id中的行数?我意识到,我可以很容易地做到这一点,只需对每个调查使用第二个查询并获取其行数,但我担心的是,用户的调查数量越多,这个过程就会变得越耗时。那么,有没有什么方法可以做到:

SELECT s.id AS id, s.title AS title, c.title AS ctitle, s.active AS active, s.length AS length, s.redirect AS redirect, n.num FROM survey_info s, survey_category c, (SELECT COUNT(*) AS num FROM survey_s.id) n WHERE s.category = c.id;
我只是不知道如何使用s.id作为另一个表的名称的一部分,或者是否可以这样做
任何帮助,甚至是正确方向上的一点都将不胜感激

所有调查都需要使用一个表。
添加新创建的id不是作为表名,而是作为该表中的测量id

所有调查都需要使用一个表。
添加新创建的id不是作为表名,而是作为该表中的测量id

创建一个关系模型,将所有调查选项存储在一个表中。这是一个示例设计:

survey
------
id PK
title

surveyOption
--------------
id PK
survey_id FK
option

surveyResponse
--------------
id PK
surveyOptionId FK
response

您将创建一个关系模型,将所有调查选项存储在一个表中。这是一个示例设计:

survey
------
id PK
title

surveyOption
--------------
id PK
survey_id FK
option

surveyResponse
--------------
id PK
surveyOptionId FK
response


不!每次一个id用来命名一张桌子,就会有一只小猫死了!请救救小猫。不要为每个调查创建新表。这是SQL反模式的定义。任何涉及创建像这样的新表的设计都可能不是一个好主意。@YourCommonSense好的,那么,在这种情况下,您建议我使用什么来引用这个新表的父调查信息?。出于对所有神圣事物的热爱,请学习关系表设计和实体模型。一对多或多对多是您需要关注的关键功能。不!每次一个id用来命名一张桌子,就会有一只小猫死了!请救救小猫。不要为每个调查创建新表。这是SQL反模式的定义。任何涉及创建像这样的新表的设计都可能不是一个好主意。@YourCommonSense好的,那么,在这种情况下,您建议我使用什么来引用这个新表的父调查信息?。出于对所有神圣事物的热爱,请学习关系表设计和实体模型。“一对多”或“有多”是你需要关注的关键特性。但每个调查都有不同数量的问题,以及不同信息类型的问题…@SamHuckaby这就是关系模型的用武之地。你知道那是什么,不是吗?@njk事实上,我对他们不太熟悉,你能推荐一个地方来阅读他们吗?@SamHuckaby我建议你在继续之前。@SamHuckaby这很简单。一张包含调查的表格,一张包含问题的表格,一张包含答案的表格,一张包含结果的表格。表中的每一个问题都由调查id标识。但每个调查都有不同数量的问题,以及不同信息类型的问题…@SamHuckaby这就是关系模型的由来。你知道那是什么,不是吗?@njk事实上,我对他们不太熟悉,你能推荐一个地方来阅读他们吗?@SamHuckaby我建议你在继续之前。@SamHuckaby这很简单。一张包含调查的表格,一张包含问题的表格,一张包含答案的表格,一张包含结果的表格。表中的每一个问题都由调查id标识。因此,如果我理解正确,每个问题都会链接到调查,每个答案都会链接到它所回答的问题,然后再链接到它的父调查?@SamHuckaby Correct。这个模式是“调查>调查选项>调查响应”。我明白这一点。这实际上要简单得多。非常感谢你的帮助@SamHuckaby您必须理解此模型的概念。请研究一下关系设计,我会的。实际上,在调查的其余部分,我一直在使用这种设计,只是不用于答案。我猜灯还没亮。到目前为止,我已经有了调查>元素问题>问题选项如果多项选择和调查>分类如果我理解正确,这将使每个问题都链接到调查,每个答案都链接到它回答的问题,然后可以链接回它的父调查?@SamHuckaby Correct。这种模式
我去调查>调查选项>调查回复Kay,我明白。这实际上要简单得多。非常感谢你的帮助@SamHuckaby您必须理解此模型的概念。请研究一下关系设计,我会的。实际上,在调查的其余部分,我一直在使用这种设计,只是不用于答案。我猜灯还没亮。到目前为止,我已经有了调查>元素问题>问题选项如果多项选择和调查>类别