【问题标题】:PHP query to search multiple tables in MySQL database? [duplicate]PHP查询在MySQL数据库中搜索多个表? [复制]
【发布时间】:2014-04-23 21:59:45
【问题描述】:

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

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

谢谢!

【问题讨论】:

  • 你真的有一个名为03-31-14的表
  • PRO-TIP 不要使用任何以mysql_句号开头的函数!
  • ...你到底为什么每天都生成一个新表?这似乎是一种非常不理想的方式。只需做一个表格并添加一个日期列。
  • 我同意@Fred,部分原因是我在这里遭受了同样的事情。一个新用户阅读了我的实质性答案,但认为不值得回应。如果每个人都这样做,我敢打赌,我们就没有社区了。故事的(正面)寓意:总是回应帮助你的人:)
  • @Fred-ii- 嘿,伙计们。抱歉让大家伤心了。我对此完全陌生。以后我会更加感谢你的智慧! Tbh 我有点恐慌,因为我绝对需要尽快为我的工作解决这个问题。再次,很抱歉没有遵守社区协议。你所有的答案都非常有帮助。

标签: php mysql database


【解决方案1】:

您始终可以在所有表​​中运行一个 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++;
}

这将在一个月内处理所有值,您显然可以添加使用更多字符串操作来在您需要的任何日期运行它

【讨论】:

  • 嗯,但是如果某天没有桌子会怎样?这不会把事情搞砸吗?
  • 不,您可以随时检查表是否有值或为空,如果为空则退出 while 循环
  • 我认为我的语法有问题,但我无法弄明白。
  • 我可以告诉你,如果你准确地复制了这段代码,你会得到 1,2,3,4,5,6,7,8,9,10 而不是 01,02,03,04 ,05,06,07,08,09,10
【解决方案2】:

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' 
...

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-16
    • 1970-01-01
    • 1970-01-01
    • 2012-09-26
    • 1970-01-01
    • 2013-05-06
    相关资源
    最近更新 更多