コントロールの名前を変更して、配列として投稿するようにします
<input type="text" name="teamname[G1]">
<input type="text" name="teamname[G2]">
これが、$varTname = $_POST['teamname'];
を使用する理由です。 $varTname
は配列であり、teamname
の4つの値のそれぞれです。 $varTname['G#']
として設定されます ここで、#はその入力フィールドのグループに設定した数と一致します。
次に、forループを使用してデータを取得し、次のようなクエリを実行します。その間、SQLインジェクションの脆弱性を修正することもできます。念のため、データをさらに衛生的にすることもできます
$varTname = $_POST['teamname'];
$varCity = $_POST['city'];
$varBplayer = $_POST['bestplayer'];
$varYearformed = $_POST['yearformed'];
$varWebsite = $_POST['website'];
$stmt = $mysqli->prepare('INSERT INTO Teams (teamname, city, bestplayer, yearformed, website) VALUES (?,?,?,?,?,?)');
$varTname1Bind = "";
$varTnameBind = "";
$varCityBind = "";
$varBplayerBind = "";
$varWebsiteBind = "";
// assuming they are all strings, adjust where needed
$stmt->bind_param('sssssss',
$varTname1Bind,
$varTnameBind,
$varCityBind,
$varBplayerBind,
$varYearformedBind,
$varWebsiteBind);
for($i = 1; i < 5; $i++)
{
$varTname1Bind = $varTname['G'.$i];
$varTnameBind = $varTname['G'.$i];
$varCityBind = $varCity['G'.$i];
$varBplayerBind = $varBplayer['G'.$i];
$varYearformedBind = $varYearformed['G'.$i];
$varWebsiteBind = $varWebsite['G'.$i];
$stmt->execute();
}
実行する必要のあるコードの量を節約できます