코딩 과제
2 개의 팀이 서로 대결하며, 각 팀은 15 개의 포지션과 15 명의 플레이어가 있습니다. 팀의 각 스쿼드에는 45 명의 선수가 있지만 경기가 시작될 때 15 명의 선수 만이 각자의 위치에서 시작할 수 있습니다. 따라서 45 명의 선수로 구성된 분대에서 코치는 가능한 3 가지 선택 중에서 한 명의 선수를 선택할 수 있습니다.
내가해야 할 일
모든 분대원과 직책이있는 15 개 팀의 테이블이 있습니다. 사용자가 드롭 다운에서 팀을 선택하면 아래 이미지에서 볼 수 있듯이 드롭 다운 메뉴를 통해 해당 특정 팀의 해당 위치에서 선택할 수있는 다른 위치와 선수를 표시합니다.
** 드롭 다운을 사용하면 사용자가 클릭 한 후 15 개의 다른 팀 중 1 개를 선택할 수 있습니다. 해당 위치에 대해 선택할 수있는 위치와 선수가 다음 이미지에서 볼 수있는 것처럼 표시됩니다 **
이제 사용자는 원하는대로 자신의 팀을 선택할 수 있습니다. 위 이미지에서 볼 수 있듯이
내가 가진 문제
분대원과 다양한 선택 옵션을 표시하는 것은 간단하지만 서로 대결하는 2 개 팀이 있으며 사용자는 한 팀이 아닌 두 팀 모두에 대해 팀을 선택해야합니다.
따라서 사용자가 팀 드롭 다운 메뉴 (이미지 1)에서 두 팀을 선택하도록 한 다음 팀 1에서했던 것처럼 팀 2에 대한 팀 선택을 표시해야합니다 (이미지 2 참조). 지금까지 몇 시간 동안이 문제를 해결하려고했습니다. 불운
내 코드는
<form name="team_select" method="post" >
Team :<select id="team1" name="team1_select[]" class="basic">
<optgroup label="New Zealand teams">
<option value="Crusaders">Crusaders</option>
<option value="Blues">Blues</option>
<option value="Highlanders">Highlanders</option>
<option value="Hurricanes">Hurricanes</option>
<option value="Chiefs">Chiefs</option>
</optgroup>
<optgroup label="Australian teams">
<option value="Brumbies">Brumbies</option>
<option value="Reds">Reds</option>
<option value="Rebels">Rebels</option>
<option value="Waratahs">Waratahs</option>
<option value="WesternForce">Western Force</option>
</optgroup>
<optgroup label="South African teams">
<option value="Stormers">Stormers</option>
<option value="Sharks">Sharks</option>
<option value="Bulls">Bulls</option>
<option value="Cheetahs">Cheetahs</option>
<option value="Lions">Lions</option>
<option value="Kings">*Kings*</option>
</optgroup>
</select>
<input type="submit" value="View" id="view" name="select" onclick="" />
</form>
<?PHP
$db_handle = mysql_connect($server, $user_name, $password);
$db_found = mysql_select_db($database, $db_handle);
//This code gets executed after form has been submitted
if(isset($_POST['select']))
{
foreach($_REQUEST["team1_select"] as $t1select)
{
$t1select = $t1select;
echo $t1select;
}//end foreach
//assign each position to variable position
$position = array("prop", "hooker", "prop", "lock", "lock", "flank", "flank", "no8", "scrumhalf", "flyhalf", "center", "center", "wing", "wing", "fullback");
//for loop to loop through the number of positions in the team, which will be used to query DB
$size = sizeof($position);
for($i=0; $i< $size; $i++){
//Query For Props
$sqlprops = mysql_query("SELECT * FROM `allsquads` WHERE `Team` ='$t1select' && `Position` = '$position[$i]'") or die(mysql_error());
echo'<form name="teamselect" method="post">';
echo '<br>';
echo $position[$i];
echo'<select name="team[]">';
//extract results
while($row = mysql_fetch_array($sqlprops))
{
//display various props names to select
echo '<option value="'.$row['Rating'].'">'.$row['Player'].'</option>';
}//end while
echo'</select>';
}//end for loop
}//end isset
?>
누군가가 약간의 도움이나 조언을 줄 수 있다면 대단히 감사하겠습니다. 미리 감사드립니다
(PS 나는 내 코드가 SQL 인젝션에 취약하다는 것을 알고 있으며 PDO 문을 사용해야하지만 여전히 배우고 있으며 강사는 현재 사용되지 않는 함수를 사용하도록 조언했습니다)
이를 구축하기 위해 하나의 쿼리 (데이터 분할) 또는 두 개의 별도 쿼리로 채워진 두 세트의 양식이 있습니다. 또한 자바 스크립트를 사용하여 동일한 플레이어가 여러 위치에 있지 않은지 확인합니다 (한 사람이 여러 위치에있을 수 없다고 가정하기 때문에).
Strawberry는 아마도 이것이 데이터베이스없이 쉽게 유지 될 수 있다는 점에서 정확할 것입니다. 그러나 데이터베이스는 확장을 훨씬 쉽게 만들어 줄 것입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다