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

时间:2014-04-23 21:59:46

标签: php mysql database

我已经阅读了一些这些回复,但我不确定我是否理解如何解决这个问题。我对此完全陌生,感到有些失落。现在,我有一个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'];
}
?>

有没有办法修改它,以便我可以搜索所有表格中的类似信息?

谢谢!

2 个答案:

答案 0 :(得分:0)

UNION允许您将多个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' 
...

但在实际使用它之前,您可能想重新访问数据库设计。如果您只为所有这些记录使用了一个表并且只添加了一个日期列,那么整个事情可能会更有效,更易于维护。

答案 1 :(得分:0)

您可以随时在所有表中运行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++;
}

这将在一个月内处理所有值,显然你可以添加更多的字符串操作来运行它,无论你需要什么日期