简体   繁体   English

使用PHP中表格中的按钮更新mysql数据库

[英]Update mysql database using a button in a table in PHP

Hello I'm trying to update a column in my mysql table and I can't get it working. 您好,我正在尝试更新mysql表中的列,但无法正常工作。

When I'm trying to click confirm, it doesn't change anything. 当我尝试单击确认时,它没有任何改变。

orders.php orders.php

<?php while ($row = mysqli_fetch_array($results)) { ?>
    <tr>

        <td><?php echo $row['fullname']; ?></td>
        <td><?php echo $row['address']; ?></td>
        <td><?php echo $row['mobile']; ?></td>
        <td><?php echo $row['order_item']; ?></td>
        <td><?php echo $row['quantity']; ?></td>
        <td><?php echo $row['total_amount']; ?></td>
        <td><?php echo $row['payment']; ?></td>
        <td><?php echo $row['status']; ?></td>
        <td>
            <a href="vieworders.php?pending=<?php echo $row['id']; ?>" class="edit_btn"  onclick="return confirm('Update status?');">Pending</a>
        </td>
        <td>
            <a href="vieworders.php?confirm=<?php echo $row['id']; ?>" class="del_btn" onclick="return confirm('Update status?');">Confirm</a>
        </td>
    </tr>
<?php } ?>

admin.php admin.php的

if (isset($_POST['pending'])) {

$pending = "Pending";
$id = $_POST['id'];
mysqli_query($db, "UPDATE order_information SET status='$pending' WHERE id=$id");
array_push($success, "Update SUCCESS");
}

if (isset($_POST['confirm'])) {

$confirm = "Confirm";
$id = $_POST['id'];
mysqli_query($db, "UPDATE order_information SET status='$confirm' WHERE id=$id");
array_push($success, "Update SUCCESS");
}

You are expecting a http Post on your script whilst you are making a Get request by clicking on the link. 当您通过单击链接发出“获取”请求时,您期望脚本上有一个http Post。

Try this instead 试试这个

if (isset($_REQUEST['pending'])) { 
$pending = "Pending"; 
$id = mysqli_real_escape_string($db,$_REQUEST['id']); 
mysqli_query($db, "UPDATE order_information SET status='$pending' WHERE id=$id");
 array_push($success, "Update SUCCESS"); 
} 

if (isset($_REQUEST['confirm'])) {
 $confirm = "Confirm"; 
 $id = mysqli_real_escape_string($db,$_REQUEST['id']); 
mysqli_query($db, "UPDATE order_information SET status='$confirm' WHERE id=$id");
 array_push($success, "Update SUCCESS");
 }

Notice I escaped you inputs... It's a good habit that can save you from peti-hackers trying out SQL injections 注意,我逃避了您的输入...这是一个好习惯,可以使您摆脱尝试SQL注入的peti-hacker

I hope this helps you. 我希望这可以帮助你。 Don't mind my rusty typing. 别介意我生锈的打字。 Still not use the the mobile app 仍不使用移动应用

Your href goes to vieworders.php, which is a $_GET, how did you link up admin.php. 您的href转到vieworders.php,这是一个$ _GET,您是如何链接admin.php的。 in vieworders.php, your id will be in the $_GET. 在vieworders.php中,您的ID将在$ _GET中。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM