это код для моей 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>
Я могу прекрасно подключиться к базе данных, и он знает, когда вы зададите вопрос правильно или неправильно, но моя проблема заключается в том, что при попытке обновить базу данных это не сделает. У кого-нибудь есть какие-то решения? Сообщение об ошибке также отсутствует. это не имеет смысла!
В вашем запросе есть несколько вопросов:
Это должно работать, когда предоставляется правильный id
:
$sqlwrong = "UPDATE `users` SET `q1` = 'some text' WHERE `ID` = $id";
$sqlcorrect = "UPDATE users SET q1 = 'correct' WHERE ID = $id";
если правильным является другое имя столбца, вам нужно окружить строки одинарными кавычками. И, как говорится в комментарии, $ ID может быть $ id в зависимости от ваших намерений. Должно быть определено в любом случае, хотя