0

コーチが自分のチームを選択できるスポーツ チームのページに取り組んでいます。私がやろうとしていることは次のとおりです。

1) 異なる位置を印刷する

2) ポジション名の横に、そのポジションにのみ関連するプレーヤーを割り当てます。(つまり、ポジション名がフランカーの場合、フランカーのみがドロップダウン メニューに表示されます)

上記の問題に対する私の論理は次のとおりです。

  • 位置名を $position という配列に割り当てます 配列をループします
  • ループごとに異なる値を持つ位置で、データベースにクエリを実行します。
  • ポジションに一致する選択されたプレーヤーは、$playerName という配列に割り当てられます
  • $position 変数を出力する
  • ポジションごとにドロップダウンメニューを作成
  • $playername 配列の値をドロップダウン メニューのオプション要素に割り当てます。
  • これで、ドロップダウン メニューを使用してさまざまなポジションが表示され、その横に、ポジションに関連するプレイヤー名が表示されます。

    //位置配列を作成

    $position = array(
        "THP",
        "HKR",
        "LH",
        "LK4",
        "LK5",
        "FLH"
    );
    echo '<form name="slectPlayers" method="post">';
    foreach ($position as $pposition) {
        $result = mysql_query("SELECT `player_id`,`name`,`surname` FROM `player_info` WHERE `position` = '$pposition'") or die(mysql_error());
        while ($row = mysql_fetch_array($result)) { //create arrays
            $id[]             = $row['player_id'];
            $playerName[]     = $row['name'];
            $playerLastName[] = $row['surname'];
            // print position and open select element
            foreach ($position as $playerPosition) {
                print $playerPosition;
                echo '<select>';
                foreach ($playerName as $name) { //assign playername to position element
                    echo '<option>' . $name;
                    '</option>';
                    echo '</select>';
                    echo '<br />';
                } //close assign player nae to position loop
            } //end print position and open select loop
        } //end while  loop
    } //end opening for each loop
    echo '</form>';
    

残念ながら、私のロジックが間違っているか、コードが間違っています。これは私が得る出力です:(すべてのドロップダウンメニューにTendaiという名前のみが表示され、他の名前は表示されないことに注意してください)

ここに画像の説明を入力

誰かが私を正しい方向に向けることができれば、私は午前中ずっとこれに苦労していました。

(モディレーターへの注意: 上の画像には実名は含まれておらず、架空のデータベースにすぎません)

4

2 に答える 2