PHP查询在MySQL数据库中搜索多个表?
我已经阅读了其中的一些回复,我不确定我是否理解如何去做。我对这个完全陌生,觉得有点迷茫。现在,我有一个PHP查询,它回显一个表中的数据。我有一个每天生成一个新表的数据库。我需要能够在数据库中不断搜索所有表中的值 以下是我目前的代码: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
$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