簡體   English   中英

我無法使用按鈕通過表格 php 更新數據庫

[英]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 注入問題。

然而,問題之一是

  • output 包含不在標簽內,因此無法提交加載 list.php 並運行更新 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.

     
    粵ICP備18138465號  © 2020-2024 STACKOOM.COM