※ ChatGPTを利用し、要約された質問です(原文:mysql データ登録)
phpのフォームからmysqlのデータ登録について
2011/07/23 11:48
このQ&Aのポイント
フォームからMySQLのデータ登録に関しての質問です。フォームには10個以上の項目があり、空の値は登録しないようにしたいです。
現在のクエリでは、10項目全てが入力された場合にのみ登録されますが、空の値の項目がある場合でも登録されてしまいます。
どのようにすれば空の値の項目を除外し、入力された項目のみを登録することができるでしょうか。お知恵をお貸しいただければ幸いです。
phpのフォームからmysqlのデータ登録についてお聞きしたいことがあります。
フォームで
<select name="test1">
<option value="">--</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<select name="hoge1">
<option value="">--</option>
<option value="サッカー">サッカー</option>
<option value="野球">野球</option>
<option value="バスケ">バスケ</option>
</select>
<select name="test2">
<option value="">--</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<select name="hoge2">
<option value="">--</option>
<option value="サッカー">サッカー</option>
<option value="野球">野球</option>
<option value="バスケ">バスケ</option>
</select>
・
・
・
これが10項目ぐらいあります。
これをデータ登録するときに空の値はデータを登録しないとしたいのですが、空の値でも登録されてしまいます。
queryは下記のようになっています。
$testquery = sprintf("INSERT INTO `testhoge` (`test`,`hoge`) VALUES
('$test1','$hoge1'),('$test2','$hoge2),('$test3','$hoge3'),('$test4','$hoge4'),
('$test5','$hoge5'),('$test6','$hoge6'),('$test7','$hoge7'),('$test8','$hoge8'),
('$test9','$hoge9'),('$test10','$hoge10')
");
}
test1とhoge1が1:サッカー。
test2とhoge2が2:野球。
test3とhoge3が1:バスケ。
(必ずしもtest項目の番号が123ではない。)
となり4項目以降は空の場合は3項目までが登録される。
10項目全部入力されれば全部登録される。
としたいのです。
どなたかおわかりの方がいらっしゃいましたらご教示お願いします。
質問の原文を閉じる
質問の原文を表示する
お礼
ご回答有難う御座います。 度重なるご質問で申し訳ないのですが、 ご教示いただいたコードをもとにフォームを作成してみましたが、データの登録までにたどりつかず頭が混乱してしまいました。 内容は フォーム画面 <form> <select name="test[1]"> <option value="">--</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select> <select name="hoge[1]"> <option value="">--</option> <option value="サッカー">サッカー</option> <option value="野球">野球</option> <option value="バスケ">バスケ</option> </select> <select name="test[2]"> <option value="">--</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select> <select name="hoge[2]"> <option value="">--</option> <option value="サッカー">サッカー</option> <option value="野球">野球</option> <option value="バスケ">バスケ</option> </select> <input type="submit" value="確認"> 確認画面 $testtxt = $_REQUEST['test']; $hogetxt = $_REQUEST['hoge']; $_SESSION['testtxt'] = $testtxt; $_SESSION['hogetxt'] = $hogetxt; foreach((array) $_SESSION['testtxt'] as $key => $val){ if($val !== "" && $_SESSION['hogetxt'][$key] !== ""){ $txt .= $val. ":" .$_SESSION['hogetxt'][$key]. '<br />'."\n"; } } echo $txt; 登録画面 ここでわからなくなってしまいました。 $txtに渡してから登録画面ではNULLと表示されてしまいます。 SESSIONも考えていたのですが、このような感じであっていますでしょうか? $_REQUESTを使ったのがはじめてのためあってるのかわかりませんが宜しくお願いします。