@Greendy

Получить массив из бд и вывести в цикле Wordpress PHP?

Здравствуйте.

Есть два модуля, никак не связанные друг с другом (NinjaTables PRO и yasr- yet another star rating). Нужно прикрутить шорткод рейтинга в таблицы от первого модуля. Проблема в том, что рейтинг привязывается к post_id, а мне надо к строке (row) в таблице.

Доколупался напрямую в файле с шорткодом рейтинга до бд таким образом:

$table_name = "wp_ninja_table_items";
    $results_rating = $wpdb->get_col("SELECT * FROM $table_name");


и пытаюсь вывести цикл таким образом:

if (!$postid) {
                foreach ($results_rating as $rowes){
                    $post_id= $rowes->id;
                }
            }
            else {
                        $post_id = $postid;
            }


$post_id - в файле пытаюсь заменить на цифру, которую получаем из бд, но выводит либо полный массив с id в колонке, либо одно число на три шорткода, по сути дублируются все, а надо чтобы было на каждый row свой post_id который заменен от $rowes->id
  • Вопрос задан
  • 384 просмотра
Решения вопроса 1
wppanda5
@wppanda5 Куратор тега WordPress
WordPress Mедведь
При таком запросе
$results_rating = $wpdb->get_col("SELECT * FROM $table_name");


$results_rating - будет содержать массив вида
[10,11,12,13,14,15]

Соответственно обращаться к нему как к объекту это ошибка $post_id= $rowes->id;

при таком переборе массива foreach ($results_rating as $rowes)
справедливо такое
$post_id = $rowes

кроме того, в случае перебора как у вас $post_id всегда будет равно значению последнего элемента массива, так так каждая итерация его переопределяет т.е. ваш перебор равен выражению
$post_id= end($results_rating)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы