• 締切
  • すぐに回答を!

二つのPHPファイルを上手く一つにしたいのですが

  • 質問No.7172128
  • 閲覧数122
  • ありがとう数0
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 25% (1/4)

ラジオボタンABCDを選択して上のNEXTボタンを押したとき、回答をSESSIONの配列に蓄えつつ次の問題へ進みたいのですがなかなか上手くいきません。
助けて頂けると嬉しいです。

ちなみに上のtest.phpでは問題を進んだり戻ったりの表示ができ、下のsession.phpではSESSION配列にクリックした分の回答を格納することができます。


//test.php
<?php
session_start();
?>
<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<body>


<p>&nbsp;</p>
<p>
<?php
$max=$_POST["next"];
if($max==null){
$max=1;
}else{
$max++;
}
?>
</p>
<p>&nbsp; </p>
<form method="post" action="test.php">
<input TYPE="radio" NAME="name2" VALUE="1" CHECKED>ア
<input TYPE="radio" NAME="name2" VALUE="2">イ
<input TYPE="radio" NAME="name2" VALUE="3" CHECKED>ウ
<input TYPE="radio" NAME="name2" VALUE="4">エ
<input type="submit" name="max_1" value="Next">
<input type="button" value="最初から" onClick="location.href='test.php'">
<input type="button" value="Back" onClick="history.back()">
<input type="hidden" name="next" value="<?php print $max?>">
</form>

<TEXTAREA readonly cols="100" rows="20" name="e">

<?
mb_language("uni");
mb_internal_encoding("utf-8"); //内部文字コードを変更
mb_http_input("auto");
mb_http_output("utf-8");

$db=mysql_connect("localhost","接続ID","パスワード");
mysql_query("SET NAMES utf8",$db); //クエリの文字コードを設定
mysql_select_db("データベース名");

//データベースに接続
if (!$con = mysql_connect("localhost", "接続ID", "パスワード")) {
echo "接続失敗" ;
  exit ;
}

//データベースを選択
if (!mysql_select_db("データベース名", $con)) {
echo "データベース選択失敗" ;
  exit ;
}

$sikenbango=111;
$mondaibango=$max;
if (!$res = mysql_query("SELECT * FROM `MONDAI` WHERE SIKENBANGO='$sikenbango' AND MONDAIBANGO='$mondaibango'",$con)) {
echo "SQL失敗<BR>" ;
  exit ;
}
//検索した結果を全部表示
while ($row = mysql_fetch_array($res)) {
echo $row["mondai"];
echo $row["kaito"];
echo "<BR>" ;


}
//結果セットの開放
mysql_free_result ($res) ;

//データベースから切断
mysql_close($con) ;

?>
</textarea>









//session.php
<?php
session_start();
?>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<?php
if (!isset($_SESSION['answer'])) { $_SESSION['answer'] = array(); }

if (isset($_POST['submit'])) {//クリックしたとき
$qno = intval($_POST['qno']);//整数が入る
if (($qno >= 1)and($qno <=80)) {
$_SESSION['answer'][$qno] = $_POST['answer']; // セッションに追加
// データベースへも保存したければここに記述
}
} else {
$qno = 0;
}

if ($qno == 80) {
print "<pre>";
print_r($_SESSION);
print "</pre>";
}
else {
$qno++;
print '<form action="session.php" method="post">' . PHP_EOL;
print '<input type="hidden" name="qno" value="' . $qno . '" />' ;
print '<input TYPE="radio" NAME="answer" VALUE="1" CHECKED>A';
print '<input TYPE="radio" NAME="answer" VALUE="2">B';
print '<input TYPE="radio" NAME="answer" VALUE="3" CHECKED>C';
print '<input TYPE="radio" NAME="answer" VALUE="4">D';
}
print '<input type="submit" name="submit" value="NEXT">' . PHP_EOL;
print '</form>' . PHP_EOL;
print "<hr />";
print "<pre>";
print_r($_SESSION);
print "</pre>";
?>

回答 (全1件)

  • 回答No.1

ベストアンサー率 51% (3827/7415)

試験問題的なものですよね

いまのソースを見る限り問題がスタティックのようですが
そんなんでよいのですか?
ランダムに問題が選ばれて、設問の順番もランダムになるとかしないの?

とりあえず回答した履歴を問題IDと回答実績を配列でプールしていけば
よいような気がします。
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ