Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从表单输入简化数组的php验证_Php_Validation - Fatal编程技术网

从表单输入简化数组的php验证

从表单输入简化数组的php验证,php,validation,Php,Validation,我正在创建一个页面,您可以在其中保存对足球比赛的预测。 每周有9场比赛,用户可以通过表单发布对比赛的预测。 此表单的结果将生成以下数组: Array ( [week] => 12 [game_id_1] => 28 [game_1_home] => 2 [game_1_away] => 2 [game_id_2] => 29 [game_2_home] => 2 [game_2_away] => 1 [game_id_3] => 3

我正在创建一个页面,您可以在其中保存对足球比赛的预测。 每周有9场比赛,用户可以通过表单发布对比赛的预测。 此表单的结果将生成以下数组:

Array ( [week] => 12 [game_id_1] => 28 [game_1_home] => 2 [game_1_away] => 2 [game_id_2] => 29 [game_2_home] => 2 [game_2_away] => 1 [game_id_3] => 31 [game_3_home] => 4 [game_3_away] => 0 [game_id_4] => 30 [game_4_home] => 2 [game_4_away] => 0 [game_id_5] => 32 [game_5_home] => 0 [game_5_away] => 2 [game_id_6] => 33 [game_6_home] => 1 [game_6_away] => 0 [game_id_7] => 35 [game_7_home] => 1 [game_7_away] => 1 [game_id_8] => 34 [game_8_home] => 2 [game_8_away] => 4 [game_id_9] => 36 [game_9_home] => 3 [game_9_away] => 0 )
您可以而且应该使用循环来避免多次复制代码。您说有9个游戏,因此您可以执行以下操作:

    $blnOK = true;
$strResult = "";

if ($_SERVER["REQUEST_METHOD"] == "POST")
{
    for ($i = 1; $i <= 9; $i++)
    {
        if (isset($_POST['game_id_' . $i]) && !empty($_POST['game_' . $i . '_home']) && !empty($_POST['game_' . $i . '_away'])) 
        //check if the posts are not empty, then put in variables
        {
            $strGame_id = $_POST['game_id_' . $i];
            $strGame_home = $_POST['game_' . $i . '_home'];
            $strGame_away = $_POST['game_' . $i . '_away'];

            //Check if strings are numeric
            if ((ctype_digit($strGame_' . $i . '_home)) && (ctype_digit($strGame_' . $i . '_away)))
            {
                //Check if prediction already exists in database for user
                $strQueryPrediction = "SELECT count(id) amount FROM prediction where player_id = 1 and game_id = $strGame_id";
                $resultQueryPrediction = mysql_query ($strQueryPrediction);

                $intPredictionKnown = mysql_result($resultQueryPrediction, 0);

                if ($intPredictionKnown == 0)
                {
                    //NOT KNOWN so INSERT
                    $blnOK = executeQuery("INSERT INTO prediction (player_id, game_id, predict_home, predict_away) VALUES (1, $strGame_id, $strGame_home, $strGame_away)", $strErrorText, $db);
                    echo "Your prediction is saved";
                }
                else
                {
                    //KNOWN so UPDATE
                    $blnOK = executeQuery("UPDATE prediction SET predict_home = $strGame_home, predict_away = $strGame_away WHERE player_id = 1 AND game_id = $strGame_id", $strErrorText, $db);
                    echo "Your prediction is updated";
                }
            }
            else
            {
                $strResult = "Too bad, your prediction could not saved.";
                $blnOK = false;
            }

        }
        else
        {
        echo "Input is empty";
        }
    }
}
每当您必须多次执行某项操作时,如果可能,请考虑使用循环,或者创建一个可以多次调用的函数