wordpress - $wpdb 更新 wordpress 中的多行
问题描述
我正在尝试使用 $wpdb 更新 wordpress 中的多行,但它不起作用!任何帮助,将不胜感激!
$deps = $wpdb->get_results( "SELECT * FROM $departments", ARRAY_A);
$deps_var = $wpdb->get_var( "SELECT count(*) FROM $departments");
...
for($i=0;$i<$deps_var;$i++)
{
$updatedeps=array(
'dept_name' => $_POST['dept_name'][$i],
'dept_contact_name' => $_POST['dept_contact_name'][$i],
'dept_contact_email' => $_POST['dept_contact_email'][$i],
'dept_contact_tel' => $_POST['dept_contact_tel'][$i],
'dept_contact_fax' => $_POST['dept_contact_fax'][$i],
'dept_status' => $_POST['dept_status'][$i],
) ;
$where=array('dept_id' => $_POST['dept_id'][$i] );
$wpdb->update( $departments, $updatedeps, $where);
}
<?php foreach ( $deps as $dep ) { ?>
<tr>
<td><input name="dept_id[]" type="text" value="<?php echo $dep['dept_id'] ?>" class="form-control" disabled></td>
<td><input name="dept_name[]" type="text" value="<?php echo $dep['dept_name'] ?>" class="form-control"></td>
<td><input name="dept_contact_name[]" type="text" value="<?php echo $dep['dept_contact_name'] ?>" class="form-control"></td>
<td><input name="dept_contact_email[]" type="text" value="<?php echo $dep['dept_contact_email'] ?>" class="form-control"></td>
<td><input name="dept_contact_tel[]" type="text" value="<?php echo $dep['dept_contact_tel'] ?>" class="form-control"></td>
<td><input name="dept_contact_fax[]" type="text" value="<?php echo $dep['dept_contact_fax'] ?>" class="form-control"></td>
<td><input name="dept_status[]" type="text" value="<?php echo $dep['dept_status'] ?>" class="small-text"></td>
</tr> <?php } ?>
解决方案
难怪自从您将dept_id
输入设置为禁用后,它会出现未定义的数组索引错误。为了保留这些dept_id
值,您可以在禁用输入之后设置隐藏dept_id
输入:
<?php foreach ( $deps as $dep ) { ?>
<tr>
<td><input type="text" value="<?php echo $dep['dept_id'] ?>" class="form-control" disabled></td>
<td><input name="dept_id[]" type="hidden" value="<?php echo $dep['dept_id'] ?>" ></td>
<td><input name="dept_name[]" type="text" value="<?php echo $dep['dept_name'] ?>" class="form-control"></td>
<td><input name="dept_contact_name[]" type="text" value="<?php echo $dep['dept_contact_name'] ?>" class="form-control"></td>
<td><input name="dept_contact_email[]" type="text" value="<?php echo $dep['dept_contact_email'] ?>" class="form-control"></td>
<td><input name="dept_contact_tel[]" type="text" value="<?php echo $dep['dept_contact_tel'] ?>" class="form-control"></td>
<td><input name="dept_contact_fax[]" type="text" value="<?php echo $dep['dept_contact_fax'] ?>" class="form-control"></td>
<td><input name="dept_status[]" type="text" value="<?php echo $dep['dept_status'] ?>" class="small-text"></td>
</tr> <?php } ?>
推荐阅读
- php - 如何将日期转换为 ymd
- unit-testing - 对多关系的意外不可迭代值
- python - 如何使用 Python 清理填充有名称的数据框列?
- java-8 - Java 8:基于另一个枚举从一个枚举分配值
- javascript - Node.js - 承诺不在循环内解决
- google-maps - Google KML 导入替换图标
- function - 带有下限浮点数和 lambda 函数的列表理解的错误消息
- postgresql - TypeError: rxjs_1.lastValueFrom 不是函数
- android - 如何在 Android NDK c++ 上执行 ASE-256-CBC 加密和解密?
- pentaho - 继承数据集会减慢 Pentaho 报表设计器的速度吗?