[英]I can't update database through form php using button
我正在學習如何使用 PHP 我被困在這里。 單擊按鈕以“結束”時,我無法更新“狀態”
這只是一個簡單的待辦事項清單。 我閱讀了許多關於類似問題的帖子,但其他解決方案對我不起作用。 數據庫100%正確
我想更新狀態“進行中”以將其設置為“結束”並且 select 僅任務狀態為“進行中”。 問題是它不更新數據庫。 我怎樣才能解決這個問題? 有任何想法嗎?
---php 我嘗試使用 ajax 但沒有成功。
$view = "SELECT task FROM list WHERE status = 'inprogress'";
$result = mysqli_query($conn,$view);
if(mysqli_num_rows($result)>0){
while($row = mysqli_fetch_assoc($result)){
echo "<li>". $row["task"] .'<button type="submit" name="ended" class="close">X</button></li>'; }
}
$task1 = false;
if(isset($_POST['task'])){
$task1 = $_POST['task'];
}
if(isset($_POST['ended'])){
$ended = "UPDATE `list` SET `status`='ended' where `task`=$task1";
$hide = mysqli_query($conn,$ended);
}
html:
<form method="POST" action="http://localhost/action/list.php" autocomplete="off">
<input required type="text" id="task" name="task" placeholder="Your task">
<button type="submit" value="submit" id="btn">Add</button>
</form>
添加記錄的另一件事和 select 它們並顯示在頁面上
您的常識是正確的,您不應該以這種方式混合語言,這會導致代碼混亂且難以調試。
考慮使用 SQL 的准備狀態,以避免 SQL 注入問題。
然而,問題之一是
我建議,僅出於學習目的(不要將其用於生產),您創建一個單頁“action.php”,它將數據庫中的記錄與“結束”按鈕一起加載到頁面上 - 在表單標簽內。
然后將表單提交回自身並讓您的腳本運行更新。
重新編寫腳本並返回您的結果,我們可以從那里為您提供幫助
D
我改變了一些東西,它工作了一半我只能更新例如記錄任務=“13”但帶有字母的記錄不任務=“一些”
這是我做的一些改變
<?php
// INSERT DATA
}if ($_SERVER['REQUEST_METHOD'] === 'POST'){
if(isset($_POST['submit'])){
if(empty($_POST['task'])){
$errors = "Cant be empty";
}else{
$task = $_POST['task'];
$query = "INSERT INTO list (task) VALUES ('$task')";
mysqli_query($conn,$query);
}
}
}
// UPDATE / DELETE
if(isset($_GET['del_task'])){
$task = $_GET['del_task'];
mysqli_query($conn,"UPDATE `list` SET `status`='ended' WHERE `task`="."$task");
}
// FORM
<form method="POST" action="http://localhost/action/list.php" autocomplete="off">
<?php if(isset($errors)){?>
<p><?php echo $errors;?></p>
<?php } ?>
<input required type="text" id="task" name="task" placeholder="Your task">
<button type="submit" name="submit" value="submit" id="btn">Add</button>
</form>
// 這里是顯示列表
<?php $i = 1; while ($row = mysqli_fetch_array($tasks)) { ?>
<tr>
<td> <?php echo $i; ?> </td>
<td class="task"> <?php echo $row['task']; ?> </td>
<td class="delete">
<a href="http://localhost/action/list.php?del_task=<?php echo $row['task'] ?>">X</a>
</td>
</tr>
<?php $i++; } ?>
我修復它的問題是在數據庫中我忘記在 id 設置自動增量
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.