php - 使用 php 表单更新 WordPress 插件表行

标签 php mysql wordpress

这是我第一次制作wordpress插件。我正在尝试创建一个包含多行的表单,因此 sql 表中的每一行都可以单独更新。使用下面的脚本,我只能编辑最后一行,而不能编辑其他行。

PHP 表单

<form name="edit_from" action="<?php bloginfo('url'); ?>/wp-content/plugins/menu/process.php" method="post">
<?php foreach($resultupdate as $key => $row ) { ?>
<tr id="product">
<td id="naam"><input name="id1"  value="<?php echo $row->ID ?>"/><input type="text" name="productnaam[<?php echo $row->ID ?>]" value="<?php echo $row->PRODUCT ?>" /></td>
<td id="prijs"><input type="text" name="price[<?php echo $row->ID ?>]" value="<?php echo $row->PRICE ?>" /></td>
<td><input type="submit" name="Submit" value="update" /></td>
<input name="id[<?php echo $row->ID ?>]"  type="hidden" value="<?php echo $row->ID ?>"/>
<input name="cat[<?php echo $row->ID ?>]" type="hidden" value="<?php echo $row->CAT ?>"/>
</tr>
<?php } ?>
</form>

流程部分

if ($_POST['Submit'] == 'update') {
$product=$_POST['productnaam'];
$price=$_POST['price'];
$cat=$_POST['cat'];
$ID=$_POST['id'];

$update = "UPDATE " . $table_name ." SET PRODUCT = '" . $product ."', PRICE = '" .$price ."', CAT = '" . $cat ."' WHERE ID = '" . $ID . "'";
$results = $wpdb->query( $update );
}

我做错了什么?感谢一百万的帮助。

最佳答案

你必须循环数组的每个元素。 由于表单的输入是数组(带有 [],如 id[] 或 cat[] 或 Price[])

我会这样做:

if ($_POST['Submit'] == 'update') {
        $products = $_POST['productnaam'];
        $prices = $_POST['price'];
        $cats = $_POST['cat'];
        $IDs = $_POST['id'];

        if (!empty($IDs) && is_array($IDs)) {
            foreach ($IDs as $id)  {
                //a little check of existing values
                $price = is_array($prices) && isset($prices[$id]) ? $prices[$id] : '';
                $product = is_array($products) && isset($products[$id]) ? $products[$id] : '';
                $cat = is_array($cats) && isset($cats[$id]) ? $cats[$id] : '';
                $update = "UPDATE " . $table_name . " SET PRODUCT = '" . $product . "', PRICE = '" . $price . "', CAT = '" . $cat . "' WHERE ID = '" . $id . "'";
                //here you have to check the return of the query
                $results = $wpdb->query($update);
            }
        }
    }

希望这有帮助:)

关于php - 使用 php 表单更新 WordPress 插件表行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25063901/

相关文章:

c# - 性能 - 使用 LINQ 删除多个 MSSQL 数据库条目

c# - 根据用户名计算日期之间所花费的时间

php - 显示来自 DB php/MySQL 的项目数组

css - 自定义字体(不使用@font-face)不会在 HTTPS 协议(protocol)上加载

php - 这个 jQuery 选择器的问题

php - 如何创建 Web 前端以在后台访问 Postgres 数据库?

mysql - 如何使用 wordpress docker 镜像从 azure 应用程序服务连接到 mysql 的 azure 数据库?

php - 根据 Woocommerce 中的运输方式和付款方式添加费用

php - 具有多个选择选项的 MySQL 查询

php - 在 WooCommercel 电子邮件通知上添加来自 Apaczka 插件的选定交付点