2013-05-22 5 views
1

나는 내 웹 사이트를위한 퀴즈 개념을 연구 중이다. 모든 질문 데이터는 mysql 데이터베이스에 저장됩니다. 사용자가 무작위로 추출한 퀴즈의 답을 제출하기 위해 다음 코드를 사용합니다.페이지에서 다른 페이지로 Mysql 정보 전송

<html> 
<title>Trivia</title> 
<body> 
<h1>Trivia</h1> 





<?php 

mysql_connect("localhost", "trivia", "<snip>") or die(mysql_error()); 
mysql_select_db("trivia") or die(mysql_error()); 



$query = 'SELECT * FROM questions ORDER BY RAND() LIMIT 1'; 
$data = mysql_query("SELECT * FROM questions ORDER BY RAND() LIMIT 1") 
or die(mysql_error()); 


$info = mysql_fetch_array($data); 


Print "<b>question:</b> ".$info['question'] . " "; 


?> 
<form action="result.php" method="post"> 
<input type="hidden" name="checkbox" value=<?php 
    $info ['correctoption'] ?>> 
    <?php 
    Print $info ['option1'] ?> <input type="radio" name="ans" value=<?php 
    $info ['option1'] ?> /><br /> 
    <?php 
    Print $info ['option2'] ?> <input type="radio" name="ans" value=<?php 
    $info ['option2'] ?> /><br /> 
    <?php 
    Print $info ['option3'] ?> <input type="radio" name="ans" value=<?php 
    $info ['option3'] ?> /><br /> 
    <?php 
    Print $info ['option4'] ?> <input type="radio" name="ans" value=<?php $info ['option4'] ?> /><br /> 
    <input type="submit" value="submit" /> 
</form> 

</body> 
</html> 

문제는 무작위 그러나 이후 나는 내가 이에 대한 답변을 검색 한 다음 페이지

<?php 

mysql_connect("localhost", "trivia", "<snip>") or die(mysql_error()); 
mysql_select_db("trivia") or die(mysql_error()); 




$query = 'SELECT * FROM questions ORDER BY RAND() LIMIT 1'; 
$data = mysql_query("SELECT * FROM `questions` WHERE 1") 
or die(mysql_error()); 


// puts the "friends" info into the $info array 
$info = mysql_fetch_array($data); 

$correctoption = $_POST ['checkbox']; 


$answer = $_POST['ans']; 

    if ($answer == 
    $correctoption) { 

     echo 'You are Correct'; 


    } 

    else { 

     echo 'You are Incorrect'; 

    }  

?> 

에서 확인할 수하고 못 했어 방법을 알아낼 얻을 수 없습니다 어딘가에.

+0

[새 코드에 mysql_ * 함수를 사용하지 마십시오.] (http://bit.ly/phpmsql). 더 이상 유지 관리되지 않으며 공식적으로 사용되지 않습니다 (https://wiki.php.net/rfc/mysql_deprecation). [빨간색 상자] (http://j.mp/Te9zIL)를 참조하십시오. 대신 [* prepared statements *] (http://j.mp/T9hLWi)에 대해 알아보고 [PDO] (http://php.net/pdo) 또는 [MySQLi] (http://php.net/)를 사용하십시오. mysqli) - [이 기사] (http://j.mp/QEx8IB)는 어떤 결정을 내리는 데 도움이 될 것입니다. PDO를 선택하면 [여기는 좋은 튜토리얼입니다] (http://j.mp/PoWehJ). –

답변

0

질문에 데이터베이스에 ID가 있기를 바랍니다. 양식의 숨겨진 입력 필드로 질문 ID를 사용하십시오. 두 번째 페이지에서 다음, 당신은 단지 질문 ID를 가지고 질문을 선택해야합니다 또한

$query = 'SELECT * FROM questions WHERE id=' .mysql_real_escape_string($_POST['id']). ' LIMIT 1'; 

, 당신은 HTML에서 정답을 게시하지 말아야을,을 위해 파악하기 매우 쉬운 것입니다 사용자!

+0

위의 코드를 시도해도 정답을 보이지 않아서 값을 출력하려 했으므로 다음과 같이 입력하십시오. SELECT * FROM questions WHERE question_id = LIMIT 1 – Thezlehman

1

숨겨진 입력 필드에 해당 ID를 유지 :

<input type="hidden" name="questionNumber" id="questionNumber" value="12345" /> 

예 : http://www.tizag.com/htmlT/htmlhidden.php
이 방법을 사용하면 사용자가 제출 응답 한 사용자 응답 & 질문을 알고있다.

희망이 도움이 될 것입니다.