从DB获取多个值

时间:2014-02-07 11:39:31

标签: php mysql sql

编码挑战

2支球队相互比赛,每支球队有15个位置,15个球员。每支球队的队员包含45名球员,但只有15名球员可以在比赛开始时以各自的位置开始。因此,对于一支由45名球员组成的球队,教练可以选择在一个可能的3个选项中选择一名球员。

我必须做什么

我有一个由15个不同球队组成的桌子,里面有他们所有的小队成员和位置。当用户从下拉列表中选择一个团队时,它会通过下拉菜单显示不同的位置以及有资格在该位置为该特定团队选择的玩家,如下图所示: enter image description here

**下拉列表让用户在用户点击后选择15个不同的团队中的一个查看在下一个图像中可以看到有特定位置选择的位置和玩家**

enter image description here

现在用户可以根据需要选择他的团队。正如您从上面的图像中看到的那样

我遇到的问题

显示小队成员和不同的选择选项很容易,但是有2支球队相互比赛,用户必须选择不仅仅是一支球队而是两支球队的球队。
因此,我需要让用户从团队下拉菜单(image1)中选择两个团队,然后像team1那样显示团队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
?>

如果有人可以提供一些帮助或建议,我们将不胜感激。提前谢谢

(P.S我知道我的代码容易受到sql注入,我应该使用PDO语句,但我还在学习,我们的讲师建议我们现在使用已弃用的函数)

1 个答案:

答案 0 :(得分:0)

要构建这个,我将有两组表单,由一个查询填充(拆分数据)或两个单独的查询。我还会使用javascript来验证同一个玩家不会被置于多个位置(因为我假设一个人不能处于多个位置)。

草莓可能是正确的,没有数据库就可以很容易地维护它,但数据库将使它更容易扩展(以及修改)。