電子書籍の厳選無料作品が豊富!

住所録を作成しています。
趣味をチェックボックスで選択するようにしましたが、1つしか選ばれません。例を挙げましたので教えてください。
if($tou<>""){
$sql = "insert into kainan values (0, '$tou', '$kai')";
$result = mysql_query($sql);
$sql = "select * from jyusho where tou='$tou' order by tou asc limit 1";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)){
$id = $row["id"];
}
echo "<p>登録完了しました</p>\n";
exit;
}
echo "
<p>データを入力してください<p/>
<form action=\"touroku.php\" method=\"post\">
<p>○登録日:<input type=\"file\" name=\"tou\" size=40 >\n
<p>○趣味:\n
<input type=\"checkbox\" name=\"kai\" value=\"不明\">不明\n
<input type=\"checkbox\" name=\"kai\" value=\"英語\">英語\n
<input type=\"checkbox\" name=\"kai\" value=\"算数\">算数\n
</p>\n
<p><input type=\"submit\" value=\"登録\">  
<input type=\"reset\" value=\"クリア\"></p>\n
</form>\n
";

A 回答 (3件)

>「kai」のフィールドに「英語 算数」と入り、



この運用方法はSQLとしては最悪です。
DBで管理するのに非常に非効率なデータの持ち方です。
検索性もグダグダですが、ほんとにそれでよろしいのですか?
改めるのでしたら「正規化」をキーワードにして検索サイトで
サーチしてみてください。すこし視野が広がるとおもいます。

どうしてもいまのやり方に固執するなら以下のようにやればできます。
当座はこれでしのげますが、あとで苦労をするのはご自身ですので
お勧めはしません。

$val="";
foreach($kai as $val){
$val.=($val==""?"":" ").$val;
}
$sql = "insert into kainan values (0, '$tou', '$val')";
$result = mysql_query($sql);
    • good
    • 0
この回答へのお礼

継ぎ足しだらけでおかしくなっていたのは事実でしたので、
調べてやり直したいと思います。
ありがとうございまいした。

お礼日時:2007/10/04 09:14

まず入力フォームのテキストボックス名をkai[]とします。


<input type="checkbox" name="kai[]" value="不明">不明
<input type="checkbox" name="kai[]" value="英語">英語
<input type="checkbox" name="kai[]" value="算数">算数

その上で、foreachで必要回数まわします
foreach($kai as $val){
$sql = "insert into kainan values (0, '$tou', '$val')";
$result = mysql_query($sql);
}

ただしtouがなぜfileになっているかわかりませんが・・・
fileでおくるならformの記述は間違ってますし、
$touはそのままではsqlにわたせないかと

この回答への補足

すいません、touの部分は、fileじゃなくてtextでした。
試してやってみます。

補足日時:2007/10/03 11:56
    • good
    • 0
この回答へのお礼

まだ、お礼ではないのですが、「kai」というフィールドに、選んだ分が全部反映がされませんでした。チェックした項目が1つごとに作成されていました。
希望:「英語と算数をチェックしたら」
「kai」のフィールドに「英語 算数」と入り、
「2007/10/1 英語 算数」 と「hyouji.php」に表示させたい。
実際は、
「2007/10/1 英語」
「2007/10/1 算数」と別々に「hyouji.php」に表示されている。
よろしくおねがいいたします。

お礼日時:2007/10/03 12:22

こんにちは。


素人な回答者です。

<input type=\"checkbox\" name=\"kai\" value=\"不明\">不明\n
で気になったのですが、
「name=\"kai\"」って3つ全部同じ名前でいいんでしたっけ?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!