• Здравствуйте, хочу обновлять в бд сразу несколько строк с данными, можно для этого создать цикл? или как это лучше реализовать?

    Вот наглядный пример, сейчас это работает в таком виде, но в будущем массив станет больше

    $array = array('заголовок 1', 'заголовок 2', 'заголовок 3', 'заголовок 4');
    $array_img = array('картинка 1', 'картинка 2', 'картинка 3', 'картинка 4');
    $array_link = array('ссылка 1', 'ссылка 2', 'ссылка 3', 'ссылка 4');

    global $wpdb;
    $wpdb->update( $wpdb->prefix . 'tablename', [ 'meta_value' => $array[0], 'meta_key' => $array_img[0], 'meta_link' => $array_link[0] ], [ 'user_id' => 1 ] );
    $wpdb->update( $wpdb->prefix . 'tablename', [ 'meta_value' => $array[1], 'meta_key' => $array_img[1], 'meta_link' => $array_link[1] ], [ 'user_id' => 2 ] );
    $wpdb->update( $wpdb->prefix . 'tablename', [ 'meta_value' => $array[2], 'meta_key' => $array_img[2], 'meta_link' => $array_link[2] ], [ 'user_id' => 3 ] );
    $wpdb->update( $wpdb->prefix . 'tablename', [ 'meta_value' => $array[3], 'meta_key' => $array_img[3], 'meta_link' => $array_link[3] ], [ 'user_id' => 4 ] );



Просмотр 1 ответа (всего 1)
  • Как вариант можно сделать так:

    $array = array('заголовок 1', 'заголовок 2', 'заголовок 3', 'заголовок 4');
    $array_img = array('картинка 1', 'картинка 2', 'картинка 3', 'картинка 4');
    $array_link = array('ссылка 1', 'ссылка 2', 'ссылка 3', 'ссылка 4');
    global $wpdb;
    for ( $i = 0; $i < count( $array ); $i++ ) { $wpdb->update( $wpdb->prefix . 'tablename', [
    'meta_value' => $array[ $i ],
    'meta_key' => $array_img[ $i ],
    'meta_link' => $array_link[ $i ]
    ], [ 'user_id' => $i + 1 ] );
    }

    • Ответ изменён 1 год, 5 месяцев назад пользователем ipsoltl.
    • Ответ изменён 1 год, 5 месяцев назад пользователем ipsoltl.
Просмотр 1 ответа (всего 1)
  • Тема «Как создать цикл для $wpdb->update» закрыта для новых ответов.