$wpdb更新wordpress中的多行

$wpdb更新wordpress中的多行,wordpress,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

我正在尝试使用$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 } ?>
$deps=$wpdb->get_结果(“从$departments中选择*”,数组A);
$deps_var=$wpdb->get_var(“从$departments中选择计数(*));
...
对于($i=0;$i$_POST['dept\u name'][$i],
'dept\u contact\u name'=>$\u POST['dept\u contact\u name'][$i],
'dept\u contact\u email'=>$\u POST['dept\u contact\u email'][$i],
“部门联系电话”=>$邮政['dept\u contact\u tel'][$i],
“部门联系人传真”=>$POST[“部门联系人传真”][$i],
“部门状态”=>$职位[“部门状态”][$i],
) ;
$where=array('dept\u id'=>$\u POST['dept\u id'][$i]);
$wpdb->update($departments,$updatedps,$where);
}

难怪会出现未定义的数组索引错误,因为您将
dept\u id
输入设置为禁用。为了保留
dept\u id
值,您可以在禁用输入后设置隐藏的
dept\u 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 } ?>


难怪会出现未定义的数组索引错误,因为您将
dept\u id
输入设置为禁用。为了保留
dept\u id
值,您可以在禁用输入后设置隐藏的
dept\u 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 } ?>

您已在中禁用属性
您在

在$departments中存储了什么?$departments=$wpdb->prefix'departments';您在$deps和$deps_变量中得到值了吗?我在deps中有两行,所以deps_变量中的值2从第一个输入中删除“禁用”并使其为只读。表单提交中不考虑禁用的输入,因此您将无法获取dept_id的值。存储在$departments中的是什么?$departments=$wpdb->前缀'departments';您在$deps和$deps_变量中得到值了吗?我在deps中有两行,所以deps_变量中的值2从第一个输入中删除“禁用”并使其为只读。表单提交中不考虑禁用的输入,因此您将无法获取部门id的值。