Wordpress вставляет несколько строк в таблицу данных - PullRequest
0 голосов
/ 22 августа 2011

Я хочу вставить некоторые данные в таблицу данных для плагина WordPress.данные взяты с POST.у меня есть несколько результатов (взятых с постом), но $ wpdb-> insert только вставляет мне последний результат (практически перезаписывает данные).почему это так?

вот мой код:

html:

echo '<label for="reduceri-post-category"><b>' . __("What categories should be the adverts", 'appplugin' ) . '</b></label><br /><br /><br />';
    ?>

    <?php foreach ($the_data[categories]  as $sat): ?>
    <b> <?= $sat[name]; ?> <br /> </b>
            <?php foreach ($sat[subcategories] as  $cat):
    ?>

    &nbsp; &nbsp; &nbsp;<input type="checkbox" name="reduceri-post-category" value="<?= $cat[sid] ?>" /> <?php echo $cat[name]; echo $cat[sid]; ?><br />

    <? endforeach; ?>
    <? endforeach; ?>




global $wpdb;


    $thedata['reduceri-post-category'] = $_POST['reduceri-post-category'];


    $table_name = $wpdb->prefix . "reduceri";


    foreach ($thedata as $key => $value) { 
    if( $post->post_type == 'revision' ) return;
    if ( $post->post_type == 'post'){

        $wpdb->insert($table_name, array( 'time' => current_time('mysql'), 'post' => $post->ID, 'category' => $value));
    }
    }

что я могу сделать, чтобы иметь возможность вставить ВСЕ результаты, а не толькопоследний??Большое спасибо!

1 Ответ

0 голосов
/ 22 августа 2011

Что находится в reduceri-post-category?

Вы говорите, что у вас есть несколько значений в записи. Как эти множественные значения передаются в ваш плагин? reduceri-post-category содержит несколько значений? Используете ли вы отдельные ключи для каждого из значений? Например, reduceri-post-category2/3/4?

Вы используете foreach для итерации по $thedata. Однако я не вижу нигде в вашем коде, где вы фактически создаете массив в $thedata. Таким образом, ваш foreach будет выполняться только один раз, и он будет выполняться в зависимости от того, что находится внутри $_POST['reduceri-post-category'];

То, что я хочу сделать, сложно сказать, является одним из этих двух сценариев.

Сценарий 1 - несколько почтовых ключей содержат данные, которые вы после

$thedata[foo1] = $_POST[foo1];
$thedata[foo2] = $_POST[foo2];
$thedata[foo3] = $_POST[foo3];
foreach ($thedata as $key => $value) { }

Или (псевдокод) - один ключ записи содержит все данные вашей категории. Таким образом, вы должны разделить его, а затем выполнить на каждом.

$thedata = explode("?", $_POST[reduceri-post-category]);
foreach ($thedata as $key => $value) { }    
...