Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.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查询在MySQL数据库中搜索多个表?_Php_Mysql_Database - Fatal编程技术网

PHP查询在MySQL数据库中搜索多个表?

PHP查询在MySQL数据库中搜索多个表?,php,mysql,database,Php,Mysql,Database,我已经阅读了其中的一些回复,我不确定我是否理解如何去做。我对这个完全陌生,觉得有点迷茫。现在,我有一个PHP查询,它回显一个表中的数据。我有一个每天生成一个新表的数据库。我需要能够在数据库中不断搜索所有表中的值 以下是我目前的代码: <?php $dbc = mysql_connect ('localhost','root','abcde'); if (!$dbc){ die('Not Connected:' . mysql_error ()); } $db_selected

我已经阅读了其中的一些回复,我不确定我是否理解如何去做。我对这个完全陌生,觉得有点迷茫。现在,我有一个PHP查询,它回显一个表中的数据。我有一个每天生成一个新表的数据库。我需要能够在数据库中不断搜索所有表中的值

以下是我目前的代码:

<?php
$dbc = mysql_connect ('localhost','root','abcde');

if (!$dbc){
    die('Not Connected:' . mysql_error ());
}

$db_selected = mysql_select_db ('game_database', $dbc);

if (!$db_selected) {
    die ("Can't Connect :" .mysql_error());
}

$query="SELECT * FROM `03-31-14` WHERE GAME='Clash of Clans'";

$result=mysql_query($query);

if (!$query){
    die ("Can't Connect :" .mysql_error());
}

while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    echo $row['GAME'];
    echo $row['REVENUE2'];
    echo $row['ARPU'];
    echo $row['DAILY_NEW_USERS'];
}
?>
允许您将多个SELECT语句合并到一个结果集中。所以你会这样做

SELECT * FROM `3-14-2014` WHERE GAME='Clash of Clans' 
UNION ALL 
SELECT * FROM `3-15-2014` WHERE GAME='Clash of Clans' 
UNION ALL 
SELECT * FROM `3-16-2014` WHERE GAME='Clash of Clans' 
...

但在您实际使用它之前,您可能需要重新审视您的数据库设计。如果您只对所有这些记录使用一个表,并且只添加一个日期列,那么整个过程可能会更高效、更易于维护。

您可以始终在所有表中运行while循环。 由于将表格命名为连续数字,因此可以执行以下操作:

$ i=1;
while(i<30){
    if($query=mysql_query("SELECT * FROM `03-31-".i."` WHERE GAME='Clash of Clans'")){

    //extra code to handle values in this table

    }else break;
    i++;
}
$i=1;

虽然(我真的有一个名为
03-31-14
PRO-TIP
的表吗?不要使用任何以
mysql\uucode>period!开头的函数!…为什么你每天都要生成一个新表?这似乎不是一个理想的方法。只需做一个表并添加一个日期列。我同意@Fred,部分原因是我遭受了同样的痛苦。)一个新用户读了我的实质性答案,但认为不值得回应。如果每个人都这么做,我们就不会剩下一个社区了,我打赌。(正面)故事的寓意:总是回应帮助你的人
:)
@Fred ii-嘿,伙计们。很抱歉让大家感到悲伤。我对这一点完全不熟悉。我会在未来更加感谢你们的智慧!我有点惊慌失措,因为我的工作需要尽快解决这个问题。再次,很抱歉没有遵守社区协议。你们所有的答案都非常有用。嗯,但会发生什么呢如果某一天没有一个表,你可以写下它吗?这不会把事情搞砸吗?不,你可以随时检查表是否有值或为null,如果为null,就跳出while循环。我认为我的语法有问题,但我无法解释。有一点我可以告诉你,如果你完全复制了这段代码,你会得到1,2,3,4,5,6,7,8,9,10而不是01,02,03,04,05,06,07,08,09,10