0

我的脚本有问题。表格如下: Tara:罗马尼亚、美国、加拿大、Apple 排名:11、12、13、14

$tari = array("Romania", "Ukraina", "Danemarca", "Rusia", "Norvegia", 
   "Serbia", "Slovenia", "Irlanda", "Lituania", "Estonia", "Croatia", "Austria",
   "Belarus", "Moldova", "Belgia");

foreach ($tari as $tara)
{
    $query4 = mysql_query("SELECT * FROM `$tara`");
    $row4 = mysql_fetch_assoc($query4);
    $name = $row4['Tara'];
    $rank = $row4['Voturi'];
    echo $name;
    echo $rank;
}

结果应该是:

Romania 11
US 12
Canada 13
Apple 14

但出现

Romania 11
Romania 11
Romania 11
Romania 11

我能做些什么?谢谢!

4

1 回答 1

3
  1. 您需要将所有这些表合二为一
  2. 然后您必须使用通常的 WHERE 条件选择所需的行
  3. 或者,如果您需要所有这些 - 完全没有条件

    $query = mysql_query("SELECT * FROM romania");
    while($row = mysql_fetch_assoc($query)) {
        echo $row['Tara'];
        echo $row['Voturi'];
    }
    

这是唯一正确的方法

好的,现在我们有了案例:

如果您来自罗马尼亚并想投票“加拿大”,您需要在罗马尼亚表中的加拿大字段中进行投票。我尝试制作欧洲电视网系统

你需要[至少] 2张桌子:

  • tari与国家
  • voturi有票

tari表必须至少包含 2 个字段:id并且name
votury表必须至少包含 2 个字段:fromfor

因此,如果罗马尼亚的 id 为 1,加拿大为 15,而罗马尼亚的某个人想投票给加拿大,请在voturi表中添加一行:

1, 15

稍后您将能够从中计算任何统计信息。比如说,如果你想看看有多少加拿大人投票给罗马尼亚,

SELECT count(1) FROM voturi WHERE `from`=15 and `for`=1; 

为所有国家获得罗马尼亚人的选票

SELECT `for`, count(1) FROM voturi WHERE `from` = 1 GROUP BY `for`; 
于 2013-04-28T14:12:57.040 回答