0

私が作成しているクイズで以下を使用しています。テーブルをチェックして、ユーザーが質問への回答を既に投稿していて、送信ボタンを押していないかどうかを確認します。私が抱えている問題は、情報を投稿していないことです。奇妙な理由でデータベース。ifステートメントと最初のデータベースを取り出してデータを投稿するだけでは正常に機能しますが、最初のクエリの結果を最初に確認すると、ユーザーが送信していなくても機能していないようです。まだ答えます。

 <?php
 $quizID = $_GET['quiz'];
$userID = $_GET['user'];
$quizselectanswer = $_POST['quizselectanswer'];
$cf_created = date("y/m/d");
$questionID = $_POST['questionID'];

// Check to see if user answered question already
 $result = mysql_query("SELECT questionID,userID FROM itsnb_chronoforms_data_answerquiz WHERE     questionID='$questionID' AND userID='$userID' LIMIT 1") or die(mysql_error());

while($row = mysql_fetch_array($result))
{ 
if (empty($row))
{
    mysql_query("INSERT INTO itsnb_chronoforms_data_answerquiz (cf_created,     questionID,quizselectanswer,quizID, userID)
    VALUES ('$cf_created', '$questionID', '$quizselectanswer', '$quizID','$userID')") 
    or     
    die(mysql_error());
}else{

}
}
?>

私のデータベースは次のようitsnb_chronoforms_data_answerquiz cf_idになります、、、、、、、、、、、、。cf_uidcf_createdcf_modifiedcf_ipaddresscf_user_idquestionIDquizselectanswerquizIDuserID

4

1 に答える 1

1

このようにしてみてくださいそれはあなたを助けるかもしれません

// Check to see if user answered question already
 $result = mysql_query("SELECT * FROM itsnb_chronoforms_data_answerquiz WHERE questionID='$questionID' AND userID='$userID' LIMIT 1") or die(mysql_error());

$row = mysql_fetch_array($result);
if(!empty($row)) 
{
    while($row){
        //some statement
    }
}else{
    mysql_query('INSERT INTO itsnb_chronoforms_data_answerquiz (cf_created, questionID,quizselectanswer, quizID, userID)
    VALUES ("'.$cf_created.'", "'.$questionID.'", "'.$quizselectanswer.'", "'.$quizID.'","'.$userID.'")') or die(mysql_error());
}
?>
于 2012-11-29T14:23:00.973 に答える