2016-05-31 3 views
0

Задача:wpdb get_results нет вывода при печати столбца таблицы

Использование Wpdb для извлечения столбца из таблицы. Код я попытался есть:

<?php 
 
global $wpdb; 
 
$sqlq2 = 'SELECT fk_id FROM `wp_productssku_mapping`'; 
 
$result = $wpdb->get_results($sqlq2); 
 
foreach($result as $row) 
 
{ 
 
print_r($row->fk_id); 
 
} 
 
?>

Это приводит к пустой странице, а попав

xyz.com/wp-content/themes/sometheme/name.php 

В журнале ошибок: его пустые (нет ошибок, связанных с этим.)

Что может быть вероятной проблемой?

Update

enter image description here

я следующие данные в таблице, мне нужно, чтобы принести ему один за другим, и использовать его в локон команде.

+0

Попробуйте print_r ($ result); перед тем, как сделать петлю foreach –

+0

@ RaviKumar без изменений. –

+0

Попробуйте print_r ($ result); Выход; и см. после нажатия кнопки управления U внизу –

ответ

0

после быстрого чтения из wpdb class reference, я получил свой вышеприведенный сценарий для работы с в следующем фрагменте кода:

global $wpdb;   
    $users = $wpdb->get_results('SELECT * FROM wp_users', ARRAY_A); 

    foreach ($users as $user) { 
     print_r($user); 
    } 

Я считаю, что причина, почему это не работает для вас, потому что вы не указали тип выходного , чтение по ссылке выше, это ваши варианты:

One of four pre-defined constants. Defaults to OBJECT. See SELECT a Row and its examples for more information. 
OBJECT - result will be output as a numerically indexed array of row objects. 
OBJECT_K - result will be output as an associative array of row objects, using first column's values as keys (duplicates will be discarded). 
ARRAY_A - result will be output as a numerically indexed array of associative arrays, using column names as keys. 
ARRAY_N - result will be output as a numerically indexed array of numerically indexed arrays. 

лично я предпочитаю работать с ассоциативными массивами, но вы хотите, объектный подход, а затем указать оБЪЕКТ в качестве второго параметра в get_results как так:

$users = $wpdb->get_results('SELECT * FROM wp_users', OBJECT); 

и он должен нормально работать.

Полное решение с OBJECT. Просто замените имена переменных и имя таблицы.

global $wpdb;   
    $users = $wpdb->get_results('SELECT * FROM wp_users', OBJECT); 

    foreach ($users as $user) { 
     print_r($user->ID); 
    } 

Я также заметил, что вы пытаетесь выполнить ваш php-файл напрямую, что не является большим в Wordpress. Вам лучше создать функцию обратного вызова функции с помощью wordpress hook, например admin_post. Скорее всего, вы никогда не запускаете код в экземпляре wordpress, и, следовательно, $ wpdb, скорее всего, будет null.

прочитайте следующее: https://codex.wordpress.org/Plugin_API/Action_Reference/admin_post_(action) о том, как обратный вызов на крюке. Вы можете использовать admin_post для создания как сообщений, так и получения запросов.

+0

Спасибо за ответ, если вы можете проверить обновление, о котором идет речь, данные о выбранных столбцах должны быть используется в команде curl один за другим. –

+0

Решение выше вас не работает –

+0

Вы пробовали $ result = $ wpdb-> get_results ($ sqlq2, OBJECT); а затем используя echo $ row-> fk_id? – Nebri

 Смежные вопросы

  • Нет связанных вопросов^_^