0

スクリプトに問題があります。表は次のようになります: タラ: ルーマニア、米国、カナダ、アップル ランク: 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. これらすべてのテーブルを1 つにする必要があります
  2. 次に、通常の WHERE 条件を使用して必要な行を選択する必要があります
  3. または、それらすべてが必要な場合 - 条件なし

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

それが唯一の正しい方法です

わかりました、これでケースができました:

あなたがルーマニア出身で「カナダ」に投票したい場合は、Canade フィールドの Romania テーブルで投票する必要があります。ユーロビジョンシステムを作ってみた

[少なくとも] 2 つのテーブルが必要です。

  • tari国と
  • voturi投票で

taritable は少なくとも 2 つのフィールドである必要があります:idおよびname
voturytable は少なくとも 2 つのフィールドである必要があります:fromおよびfor

したがって、ルーマニアの 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 に答える