我希望为100个城市建立一个关于GDP,人口,CPI等的数据库。此外,用户可以用HTML提交他需要的变量。
目标1:最终用户可能要求2017年所有100个城市的GDP,流行,CPI。
目标2:最终用户在2000 - 2017年(整个期间)要求为city_1提供GDP,流行,CPI。
我决定为每个城市创建一张桌子。在这个城市,有几个领域的年份,GDP,流行,cpi ...
因此,目标2可以通过以下方式实现:我可以从最终用户输入的框中收集值,即:category{all, GDP, pop}, city{all, city_1, city_2}, time{all, 2017, 2016,...}.
$query="SELECT * FROM $query where year=$time";
$qry_result=$mysqli->query($query);
但是,我不确定如何显示目标1.由于可能有数百到数千个城市,所以似乎不是列出所有表格的正确方法。 我以为我需要一些像
这样的代码SELECT * FROM (SHOW TABLES) FROM $year=$time;
显然这段代码不起作用。 所以,我认为合并可能会奏效。例如,如果我可以合并所有表或将所有表与year ="来自用户"的值合并,则问题就解决了。 但是,因为有这么多城市,我不确定它是否是逐个输入所有合并命令的唯一方法,是不是有任何代码来"合并所有&#34 34;在一个数据库内? 如果您可以帮助我完成合并部分甚至如何构建数据库,那么,谢谢。
答案 0 :(得分:0)
您的数据应该在一个表中,看起来像这样:
表cities
| city | year | gdp | population | CPI |
-------------------------------------------
| London | 2016 | 1.0 | XXY | XXX |
| London | 2017 | 1.0 | XXY | XXX |
| London | 2018 | 1.1 | XXZ | XXX |
| Paris | 2018 | 1.1 | XXZ | XXX |
使用以下内容进行查询:
SELECT gdp FROM cities WHERE city = 'London' AND year = 2016;
// Get GDP for London in 2016
和
SELECT * FROM cities WHERE city = 'London' AND year BETWEEN 2016 AND 2018;
// Get all data for London for years 2016-2018