php - 从数据库中获取多个值

标签 php mysql sql

编码挑战

2支队伍对战,每队15个位置,15名队员。每支球队有 45 名球员,但只有 15 名球员可以在比赛开始时在各自的位置上发球。因此,对于一支由 45 名球员组成的球队,它允许教练从 3 个可能的选择中选择 1 名球员担任一个位置。

我必须做什么

我有一张包含 15 个不同团队的表格,其中包含所有小队成员和位置。当用户从下拉菜单中选择一支球队时,它会通过下拉菜单显示该特定球队的不同位置和该位置上有资格选择的球员,如下图所示: enter image description here

** 在用户单击查看位置后,下拉菜单允许用户从 15 个不同的团队中选择一个,并且显示有资格选择该特定位置的球员,如下图所示 **

enter image description here

现在用户可以根据需要选择他的团队。如上图所示

我遇到的问题

显示小队成员和不同的选择选项非常简单,但是有 2 支球队互相比赛,用户必须为两支球队而不是一支球队选择球队。
因此,我需要让用户从团队下拉菜单 (image1) 中选择两个团队,然后像对 team1 所做的那样显示 team2 的团队选择(参见 image2)我已经尝试解决这个问题几个小时了没有运气

我的代码如下

<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 注入(inject)的攻击,我宁愿使用 PDO 语句,但我仍在学习,我们的讲师建议我们暂时使用已弃用的函数)

最佳答案

为了构建它,我将有两组表单,由一个查询(拆分数据)或两个单独的查询填充。我还会使用 javascript 来验证同一名球员没有担任多个职位(因为我假设一个人不能担任多个职位)。

Strawberry 可能是正确的,这可以在没有数据库的情况下轻松维护,但数据库将使扩展变得更加容易(以及修改)。

关于php - 从数据库中获取多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21626810/

相关文章:

php - 在 PHP 中加密非常短的字符串的最佳方法是什么?

php - SQL命令将选定的内容从选定的行复制到其他行?

mysql2 gem 与 mysql 5.6.19 不兼容

sql - 当您设置存储过程级别时, View 的隔离级别是多少?

mysql - 修改列的最简单方法?

php - 使用 Greasemonkey 和 PHP 下载和上传

php - 为什么不创建表 Simpsons?

php - mysql中的空行预防

mysql - SQL 规范化数据 INSERT WHERE NOT EXISTS ;关于重复 key 更新

java数据库管理连接错误