
こんにちは。
PHPとMySQLを使って四択クイズのプログラムを作成しているのですが、どうもうまくいきません。
助言よろしくお願いします。
四択クイズのイメージとしては以下のとおりです。
問題1:パンはパンでも食べられないパンは?
○クリームパン
○食パン
○フライパン
○チーズパン
[送信ボタン]
※選択肢の前の○はラジオボタンです。
一つのページに複数の問題を載せたいので、
上記の[送信ボタン]をのぞいた部分をループ処理したいと思っています。
問題文と選択肢は実行するファイルとは別のファイル、「mondai.sql」に記述してデータベースに読み込んでいます。↓
drop table form2;
create table form2(id mediumint not null auto_increment,
mondai varchar(500),
sentaku1 varchar(100),sentaku2 varchar(100),sentaku3 varchar(100),
sentaku4 varchar(100),primary key(id));
insert into form2 values('1',
'パンはパンでも食べられないパンは?',
'クリームパン',
'食パン',
'フライパン',
'チーズパン');
そして実行するファイルの「form2.php」を下のように記述してみたのですが・・・
・
・
・
//-----------------------------------------
//サーバに接続
//-----------------------------------------
$my_Con =
mysql_connect("localhost","root","vertrigo");
if($my_Con == false){
die("MYSQLの接続に失敗しました。");
}
//-----------------------------------------
//データベースに接続
//-----------------------------------------
if(!mysql_select_db("kihon",$my_Con)){
die("データベースの選択に失敗しました。");
}
//-----------------------------------------
//テーブルからデータを読む
//-----------------------------------------
$my_Row = mysql_query("select * from form2",$my_Con);
if(!$my_Con){
die(mysql_error());
}
while($row = mysql_fetch_array($my_Row)){
echo $row["id"];
echo "<br>";
echo $row["mondai"];
echo "<br>";
?>
<input type="radio" name=mondai1 value=1>
<?php
echo $row["sentaku1"];
echo "<br>";
?>
<input type="radio" name=mondai1 value=2>
<?php
echo $row["sentaku2"];
echo "<br>";
?>
<input type="radio" name=mondai1 value=3>
<?php
echo $row["sentaku3"];
echo "<br>";
?>
<input type="radio" name=mondai1 value=4>
<?php
echo $row["sentaku4"];
echo "<br>";
}
このままだとラジオボタンのnameが同じになってしまって全ての問題の選択肢から一つしか選べなくなってしまいました。
かといってnameをfor文でループさせることもできませんでした。
このプログラムにどのようにしてループを組み込めばいいかまったくわかりません。
長い質問で申し訳ないのですが、どうかよろしくお願いします。
No.2ベストアンサー
- 回答日時:
idがあるのだからこんな感じで・・・
while($row = mysql_fetch_array($my_Row)){
print <<<eof
問題 {$row["id"]}:<br>
{$row["mondai"]}<br>
<input type="radio" name="mondai[{$row["id"]}]" value="1">{$row["sentaku1"]}<br>
<input type="radio" name="mondai[{$row["id"]}]" value="2">{$row["sentaku2"]}<br>
<input type="radio" name="mondai[{$row["id"]}]" value="3">{$row["sentaku3"]}<br>
<input type="radio" name="mondai[{$row["id"]}]" value="4">{$row["sentaku4"]}<br>
<hr>
eof;
}
受け取る側は$_REQUEST["mondai"]という配列に、回答された値を
得ることができます。
ちなみにご提示のデータベースの構造はあまりよくないですね・・・。
拡張性にかけるし、正解とひもづいてないし、もう少し工夫が必要になる
と思います
yambejpさん、ご回答ありがとうございます。
for文使わないとできないと勝手に思い込んでいました(汗)
idを有効活用したほうが全然いいですね!
とても参考になりました。ありがとうございます。
自分もまだ始めたばかりなのでわからない事が多々ありますが、
悪いところを指摘してもらえてとても為になりました!
今後も工夫を重ねてスキルアップしていきたいと思います。
No.1
- 回答日時:
nameの番号をPHPで書いてあげればいいんじゃないでしょうか。
while($row = mysql_fetch_array($my_Row)){
の部分を
$no = 0;
while($row = mysql_fetch_array($my_Row)){
$no++;
にしてあげて、
<input type="radio" name=mondai1 value=1>
この部分を
<input type="radio" name=mondai<?= $no ?> value=1>
こんな感じとか。
mizuno3さん、ご回答ありがとうございます。
なるほど・・・、inputタグの中にもPHPを書くこともできるんですね。
そこまで発想が回りませんでした。
とても参考になりました。ありがとうございます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
このQ&Aを見た人はこんなQ&Aも見ています
-
「それ、メッセージ花火でわざわざ伝えること?」
「それ、メッセージ花火でわざわざ伝えること?」というメッセージを教えて下さい
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
これ何て呼びますか
あなたのお住いの地域で、これ、何て呼びますか?
-
一番好きなみそ汁の具材は?
みんなで大好きなみそ汁の具材について語り合おうよっ!
-
カラオケの鉄板ソング
歌えばその場が絶対盛り上がる「鉄板ソング」を教えてください!
-
【初歩】ラジオボタンをつかったPHPフォームから値のMySQLへの格納と取り出し
MySQL
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・昔のあなたへのアドバイス
- ・字面がカッコいい英単語
- ・許せない心理テスト
- ・歩いた自慢大会
- ・「I love you」 をかっこよく翻訳してみてください
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・はじめての旅行はどこに行きましたか?
- ・準・究極の選択
- ・この人頭いいなと思ったエピソード
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
文字化けが解決できません。お...
-
検索結果($_POST)が2ページ目...
-
アラートでyes noを作りたいです。
-
PHPとSmartyを使い、データベー...
-
検索結果をgoogleのように数件...
-
PHPについてなのですが未定義の...
-
テキストボックスに入れた内容...
-
MySQLでデータベースにデータin...
-
php テーブルを作れない
-
PHPから、MySQL内に日本語名の...
-
カラムにデータがあるかないか...
-
VBAをつかってクエリの情報を抽...
-
csvをDBへ読み込んだら、NULLが...
-
実行時エラー3131 FROM 句の構...
-
子プロセス終了で閉じてしまうm...
-
Pro*Cの構文エラー
-
変数にNULLを代入したい
-
期待した値がMySQLから返ってこ...
-
php postgres Insert と updat...
-
VBA ACCESS SQL...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アラートでyes noを作りたいです。
-
phpでmysqlを使ってデータベー...
-
sortable ギブアップです…助け...
-
文字化けが解決できません。お...
-
PHP+MySQLでの配列のinsert文に...
-
チェックボックスによる複数の...
-
phpからdocument.writeで出力し...
-
PHP と MySQL でテーブルの行数...
-
mysqlから取得した配列をカンマ...
-
dbに登録したデータをphpのプル...
-
PEAR MDB2 のsetFetchModeが設...
-
PHPとMysqlによる正規表現について
-
PHPでMySQLデータを呼び出し、w...
-
日付範囲で検索した後に降順に...
-
DBで検索結果に該当するデータ...
-
PHPで[]の使い方について
-
checkboxで複数選択して,OR...
-
SELECT結果から動的にコンボボ...
-
データベースのページング出力...
-
PHP 10件表示 "前へ" "次へ"
おすすめ情報