我已经阅读了一些这些回复,但我不确定我是否理解如何解决这个问题。我对此完全陌生,感到有些失落。现在,我有一个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'];
}
?>
有没有办法修改它,以便我可以搜索所有表格中的类似信息?
谢谢!
答案 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++;
}
这将在一个月内处理所有值,显然你可以添加更多的字符串操作来运行它,无论你需要什么日期