-2

$playernamesさまざまなプレイヤー名を保持する配列があります。値を抽出してデータベースに 1 回につき 1 つのクエリをアップロードしようとしています。

for ($i=0; sizeof($playername) > $i; $i++)
{
    $name = $playername[$i];
    $query = mysql_query(
        "INSERT INTO `team`(`fixture_id`,`player_name`
    ) 
    VALUES ($id, '$name')") or die(mysql_error());  
}

ただし、現在起こっていることは、ループ内のすべてのクエリの後、データベースの名前列でデータが上書きされることです。実行後、DB を開くと、配列に含まれる最後のプレーヤーの名前のみが表示されます。

私は何を間違っていますか?前もって感謝します。(この質問が重複に触れている場合は申し訳ありませんが、上記の問題に関する明確な説明はありません)

4

3 に答える 3

0

値が設定されて$idいないか、常に同じである$iようです。おそらく、代わりに次のように使用したいと考えていました。

for ($i=0; sizeof($playername) > $i; $i++)
{
    $name = $playername[$i];
    $query = mysql_query("INSERT INTO `team`(`fixture_id`,`player_name`) 
    VALUES ($i, '$name')") or die(mysql_error());  
}

また、自動インクリメント列を作成して、次のように挿入することもできます。

foreach($playername as $name){

    $query = mysql_query("INSERT INTO `team`(`fixture_id`,`player_name`) 
            VALUES ('', '$name')") or die(mysql_error());
}

wherefixture_idは mysql で自動的にインクリメントされます

于 2013-10-03T07:28:57.540 に答える
0

fixture_id変数によって提供される SQL のは変更され$idません。したがって、各クエリは前のクエリの値を上書きしています。$idおそらく、各ループ反復で変更するロジックも追加する必要があります。

于 2013-10-03T07:28:35.900 に答える