私はこれに取り組んでいて、ウェブを検索していて、2 日間の大半が空っぽでした。たくさんの汗をかいて、1 つのチェックボックス付きの値を DB に挿入できます。ただし、さらにチェックボックスをオンにしても、挿入される値は 1 つだけです。
入力ユーザーページで使用しているコードは次のとおりです(フォームタグは除外されています):
<input type="checkbox" name="skills[]" value="1"> ActionScript<br />
<input type="checkbox" name="skills[]" value="2"> AppleScript <br />
ここで、2 つのセッション変数を取得して、選択したスキルをログオンしているユーザーにリンクします。
$skills = $_POST['skills'];
$id = $_SESSION['Ind_ID'];
小さなエラーがあるコードは次のとおりです。
for ($i=0; $i<sizeof($skills);$i++) {
// echo $skills[$i];
$query= "INSERT INTO individual_skills(Skills_ID,Ind_ID) VALUES (" .$skills[$i]. ",
".$_SESSION['Ind_ID'].")";
}
echo $skills[$i] を使用すると、ループしていることがわかり、画面にできるだけ多くのユーザー入力を表示できます。それで、それは良いニュースです。
問題は、複数の値を DBに挿入できないことです。一度に 1 つの値を実行できます。ただし、1つだけです。
私のクエリはかなり近いようです。チェックボックスを 1 つだけ選択すると、完璧に機能します。ただし、複数を選択すると、最後の値のみが入力されます (したがって、10 個の値を選択すると、最後の値が DB に挿入されます)。
どんな助けでも大歓迎です。
PHPとMySQLiを使用しています
ループのフィードバックに基づい て更新 これが更新されたループです。ループの外にクエリがあり、最初のクエリに追加しようとしています。エラーは、クエリの構文に何か問題があることを示しています。
$query= "INSERT INTO individual_skills(Skills_ID,Ind_ID) VALUES (" .$skills[$i]. ",
".$_SESSION['Ind_ID'].")";
for ($i=0; $i<sizeof($skills);$i++) {
//echo $skills[$i];
$query.= " VALUES (" .$skills[$i]. ",".$_SESSION['Ind_ID'].")";
}