Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.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/63.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 在一个表中同时执行三个SQL查询_Php_Mysql_Sql_Database - Fatal编程技术网

Php 在一个表中同时执行三个SQL查询

Php 在一个表中同时执行三个SQL查询,php,mysql,sql,database,Php,Mysql,Sql,Database,我有以下表格结构: ---------------------------------- ID | Acces | Group | User | Gate | ---------------------------------- 1 | 1 | TR | tsv | TL-23| ---------------

我有以下表格结构:

                 ----------------------------------
                 ID | Acces | Group | User | Gate |
                 ----------------------------------
                 1  |   1   |  TR   | tsv  | TL-23|
                 ----------------------------------
我有一个包含3个功能的页面:

  • 选择“组”以查看所选组具有访问权限的所有门
  • 选择“门”以查看有权访问所选门的所有组
  • 选择“组”以查看属于所选组的所有用户
所以基本上:

  SELECT Gate WHERE Group = TR 
  SELECT Group WHERE Gate = TL-23
  SELECT User WHERE Group = TR
我试图实现的是:用户应该能够以任何顺序运行所有三个查询,而不会出现前一个查询的结果

现在,我知道在PHP中不再可能使用多线程,但是必须有一种方法来临时保存特定查询的结果,直到再次执行相同的查询


如有任何帮助和建议,将不胜感激

首先,PHP从来没有做过开箱即用的机器翻译,但是可以(仍然)使用pcntl扩展

也就是说,这不是你想要的酱汁

如果您只是希望前端的用户进行3次单独的交互,而不必第一次点击DB一次,第二次点击DB两次(重做第一次和新的查询),您可以从缓存用户会话中每次调用的结果中获益

如果您确实想在一个精确的时间以关系方式进行这3个查询,请尝试
JOIN
s

如果您只是想同时进行所有3个单独的查询(本质上是),请查看
TRANSACTION
s


希望这能有所帮助。

您能在您的表格中至少多出一些包含不同门、组和用户的行吗?也许向sqlfiddle.com提供一些数据?我想用这些数据做一个矩阵。这将很有趣:)这似乎不是一个mySQL问题或SQL问题。看起来您希望保留每个请求中的数据,然后在每个查询中获得附加数据之前重新呈现该数据。如果您不断地附加到一个对象,该对象将通过新的查询(有很多方法)保持不变,并将新数据附加到数组中,并且每次呈现数组。。。然后你可能会达到预期的结果。我不认为这是一个mySQL问题,而是一个PHP和跨请求保留数据的问题。(变量@lascort雄辩地指出)@xQbert如果有人提供与SQL相关的解决方案,这可能是一个SQL问题。据我所知,可能有一些子句允许多线程查询
用户应该能够以任何顺序运行所有三个查询,而不会使前一个查询的结果消失
——这听起来很像是重复使用变量或其他类似的代码错误,与所问的问题几乎没有关系(这是“混淆”)。由于问题中没有代码,因此不可能真正说出问题所在。在现代浏览器中,在用户会话中存储数据是有风险的,因为它容易受到意外更改的影响。这是怎么回事?会话已保存到服务器,浏览器中唯一引用会话ID的Cookie。请详细说明。