$ wpdb обновляет несколько строк в WordPress - PullRequest
0 голосов
/ 05 марта 2019

Я пытаюсь обновить несколько строк в WordPress, используя $ wpdb, но это не работает!Любая помощь будет оценена!

$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 } ?>

Ответы [ 2 ]

0 голосов
/ 05 марта 2019

У вас есть «отключено» свойство в <td><input name="dept_id[]" type="text" value="<?php echo $dep['dept_id'] ?>" class="form-control" disabled></td> отключенные входы не учитываются при отправке формы.измените его на только для чтения

0 голосов
/ 05 марта 2019

Не удивительно, что появляется неопределенная ошибка индекса массива, поскольку вы отключили ввод 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 } ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...