[英]database not updating when checkbox ticked
編輯:抱歉取消是在數據庫中鍵入tinyint我有一個帶有1個復選框的表單 - 我希望它在檢查時更新我的數據庫以顯示課程被取消。 默認情況下,我的數據庫中的值為0,但是當我嘗試更新課程以取消它時,值永遠不會更改為1.請幫忙!
這是我的editForm代碼片段:
<p><label class="field" for "Credits">Credits:</label> <input type="text" name="cred" size="40" value="<?php echo "$row[Credits]"?>" class="rep"></p>
<p><label class="field" for "Cancelled">Cancelled:</label> (Tick to cancel) <input type="checkbox" name="canc" size="40" value="Yes" class="rep"></p>
<input type="submit" name="submit_value" value="Update"></p>
這是我的updateCourse php頁面:
$id = $_POST["id"];
$title = $_POST["title"];
$cat = $_POST["cat"];
$loc = $_POST["loc"];
$county = $_POST["county"];
$time = $_POST["time"];
$date = $_POST["date"];
$cred = $_POST["cred"];
$fac = $_POST["fac"];
$canc = $_POST["canc"];
if(isset($_POST['submit_value'])) {
if(isset($_POST['canc'])) {
$canc = isset($_POST['canc']) ? '1' : '0';
$query1 = "UPDATE Course
SET Title = '$title',
Category = '$cat',
Location = '$loc',
County = '$county',
Course_Time = '$time',
Course_Date = '$date',
Credits = '$cred',
Facilitator = '$fac'
Cancelled = '$canc'
WHERE CourseID = '$id' ";
$result = $mysqli_db->query($query1);
} else {
$query2 = "UPDATE Course
SET Title = '$title',
Category = '$cat',
Location = '$loc',
County = '$county',
Course_Time = '$time',
Course_Date = '$date',
Credits = '$cred',
Facilitator = '$fac'
WHERE CourseID = '$id' ";
$query_result = $mysqli_db->query($query2);
我的query2正在運行但query1從不更改我的數據庫中的已取消值
您在此行中的字段之間缺少一些逗號:
Facilitator = '$fac'
之后應該有一個逗號:
$query1 = "UPDATE Course
SET Title = '$title',
Category = '$cat',
Location = '$loc',
County = '$county',
Course_Time = '$time',
Course_Date = '$date',
Credits = '$cred',
Facilitator = '$fac',
Cancelled = '$canc'
WHERE CourseID = '$id' ";
這會引發MySQL錯誤。 您可以使用mysql_error()
來調試這些問題。 回顯或打印查詢通常也有助於發現錯誤。
首先,太多簡單的代碼行。 你正在復制$canc
的啟動。 如果你用0和1分配變量,為什么heck 2會查詢? 1更簡單,更易讀。 此外,您可以更輕松地進行調試。 其次,您需要了解PDO語句或過濾,因為您的腳本非常容易受到攻擊。 例如,您的腳本可以縮短為:
$canc = isset($_POST['canc']) ? '1' : '0';
if(isset($_POST['submit_value'])) {
$query = "
UPDATE Course
SET Title = '$title',
Category = '$cat',
Location = '$loc',
County = '$county',
Course_Time = '$time',
Course_Date = '$date',
Credits = '$cred',
Facilitator = '$fac',
Cancelled = '$canc'
WHERE CourseID = '$id'";
$query_result = $mysqli_db->query($query);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.