0

これは私のhtmlフォームのコードです:

<!DOCTYPE html>
<head>
<title> Question </title>

<style type = "text/css">

body {
font-family:cursive;
}

a:link {
text-decoration:none;
background-color:#D0D0D0;
color:#000000;
width:100px;
display:block;
text-align:center;
padding:4px;
}

a.visited {
text-decoration:none;
background-color:#D0D0D0;
color:#000000;
width:100px;
display:block;
text-align:center;
padding:4px;
}

a.active {
text-decoration:none;
background-color:#D0D0D0;
color:#000000;
width:100px;
display:block;
text-align:center;
padding:4px;
}

a:hover {
background-color:#686868;
color:#FFFFFF;
}

#title {
text-align:center;
}

</style>

</head>
<body>

<?php

session_start();

?>

<h1 id="title"> Question 1 </h1>

<br/>

<form action="q15.php" method="POST" >
<fieldset>
<legend>Who wrote the music we all recognise from the Paralympics?</legend>
<p>
<input 
type="checkbox"
value="your friend"
name="answer"
/>Your Friend
</p>

<p>
<input
type="checkbox"
value="public friend"
name="answer"
/>Public Friend
</p>

<p>
<input
type="checkbox"
value="your enemy"
name="answer"
/>Your Enemy
</p>

<p>
<input
type="checkbox"
value="public enemy"
name="answer"
/>Public Enemy
</p>

<p>
<input 
type="submit"
value="Submit"
/>
</p>
</fieldset>
</form>

</body>
</html>

これは私のページのコードで、データを処理し、後で入力するために空白のままにしたデータベースを更新します(現在のように)

<body>

<h1 id="title"> Quiz </h1>

<?php

session_start();

$connection = mysql_connect("mysql15.000webhost.com", "a4987634_quiz", "********")
or die (mysql_error());

mysql_select_db("a4987634_quiz", $connection)
or die (mysql_error());

$fname = $_SESSION['fname'];
$lname = $_SESSION['lname'];
$id = $_SESSION['ID'];

$answer = $_POST['answer'];
$id = mysql_query("SELECT ID FROM users WHERE fname=$fname LIMIT 1");

if(isset($_POST['answer']) &&
$_POST['answer'] == 'public enemy')
{
?>

<h3 id = "correct"> Correct </h3>

<?php

$sqlcorrect = "UPDATE users SET q1 = correct WHERE ID = $ID LIMIT 1";

mysql_query($sqlcorrect);
(mysql_error());

}
else {

?>

<h3 id = "incorrect"> Incorrect </h3>

<?php

$sqlwrong = "UPDATE users SET q1 = 'wrong' WHERE ID = $ID LIMIT 1";

mysql_query($sqlwrong);
(mysql_error());

}

?>

</body>
</html>

私はデータベースに完全に接続でき、質問がいつ正解または不正解になるかを認識しますが、私の問題は、データベースを更新しようとすると更新されないことです。誰にも解決策はありますか?エラーメッセージもありません。意味がありません!

4

2 に答える 2

6

クエリにはいくつかの問題があります。

  • PHP の変数名は大文字と小文字を区別します
  • 更新クエリには LIMIT を指定できますが、単一の ID が指定されているため、ここでは意味がありません。
  • 文字列を更新するときは、引用符で囲む必要があります。

権利idが提供されている場合、これは機能するはずです。

$sqlwrong = "UPDATE `users` SET `q1` = 'some text' WHERE `ID` = $id";
于 2012-10-25T18:44:30.877 に答える
2
$sqlcorrect = "UPDATE users SET q1 = 'correct' WHERE ID = $id";

正しい別の列名でない限り、文字列を一重引用符で囲む必要があります。コメントにあるように、意図によっては $ID が $id になる場合があります。どちらかで定義する必要がありますが、

于 2012-10-25T18:45:47.483 に答える