
こんにちは。
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も見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
チェックボックスによる複数の...
-
DBで検索結果に該当するデータ...
-
データベースのページング出力...
-
VBA初心者です。
-
internal server error時の回避
-
JAVA SQLServerException 列名 ...
-
PDOで取得される値がすべて文字...
-
Resource id #3 をフィールドの...
-
phpの掲示板でレスがあったスレ...
-
データベースに存在するデータ...
-
<VB.NET>INSERT文でDBにデータ...
-
AUTO_INCREMENTを2つ設定する方法
-
MySQLでデータベースにデータin...
-
変数同士の引き算が出来ない
-
抽出されたデータをソートした...
-
SQL文の連結が、うまくいきません
-
DBデータをcsvで出力の際カンマ...
-
MySQLにHTMLタグを挿入したい
-
MYSQLからのarrayデータをjpgra...
-
VBAをつかってクエリの情報を抽...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DBで検索結果に該当するデータ...
-
PHPで[]の使い方について
-
mysql_fetch_assoc()の非推奨
-
アラートでyes noを作りたいです。
-
チェックボックスでチェックし...
-
チェックボックスから検索、PHP...
-
checkboxクリック時、SQLを実行...
-
phpでmysqlを使ってデータベー...
-
sortable ギブアップです…助け...
-
空だと思ったのに・・・
-
PHP 10件表示 "前へ" "次へ"
-
入力フォームが上手く動きませ...
-
PHP MYSQLから呼び出し後の比較
-
エクセルVBAについて
-
PHPでMySQLデータを呼び出し、w...
-
mysqlから取得した配列をカンマ...
-
データベースのページング出力...
-
チェックボックス検索システム
-
検索したときなにも無かった場合
-
dbに登録したデータをphpのプル...
おすすめ情報