2010-10-08 105 views
2

我試圖顯示由我的Wordpress插件(具體來說,ID)創建的特定列的所有值。這裏是我設法用來顯示列名的代碼,但是我不能讓它顯示所有的ID。下面是代碼:顯示數據庫列值

function test() { 
    global $wpdb; 
    global $table_name; 
    $testing = $wpdb->get_col_info('name', 0); 
    foreach ($testing as $test) { 
     echo $test; 
    } 
} 

在這裏你可以看到輸出:

www.matthewruddy.com/premiumslider

誰能幫助我嗎?

回答

0

看來你需要數據而不是列信息。所以你需要another function

$testing = $wpdb->get_results("SELECT id FROM mytable") 
foreach ($testing as $test) { 
    echo $test->id 
} 

編輯

OK,這個怎麼樣:

$wpdb->show_errors(); 
echo 'Listing from table: $table_name<br>'; 
$ids = $wpdb->get_col($wpdb->prepare("SELECT id FROM %s", $table_name)); 
if ($ids) { 
    echo 'printing results:<br>'; 
    foreach($ids as $id) { 
    echo $id; 
    } 
} else { 
    echo 'no results or error<br>'; 
    echo 'error: ' . $wpdb->print_error(); 
} 
$wpdb->hide_errors(); 

如果這並不能幫助你要麼讓你的ID或弄清楚什麼錯誤是,我迷路了。

+0

這不輸出任何內容.. – 2010-10-08 18:58:53

+0

您是否用$ table_name的內容替換'mytable'?而且你的專欄在數據庫中確實被稱爲'id'或其他東西。 – thomaspaulb 2010-10-08 19:20:41

+0

我用$ table_name替換了我的表,全局$ table_name。這適用於所有其他實例。是的,它被稱爲'id'。 – 2010-10-08 21:14:43

0

對於這個問題可能有點晚,但我認爲它與今天的WordPress世界仍然有關,也是我創建自己的插件時遇到的情況。

對於其他人,這對我有用。 OP幾乎擁有它。但是,$ wpdb-> get_col_info()依賴於緩存結果的結果,因此需要首先調用$ wpdb-> get_results或get_row或query。 :)

我也喜歡littlegreen的錯誤處理。

 


    function test() { 
     global $wpdb, $table_name; 
     $wpdb->show_errors(); 
     $return = 'Listing from table: '.$table_name.'
'; $results = $wpdb->get_results("SELECT * FROM ".$table_name); $nameCols = $wpdb->get_col_info('name'); if (is_array($nameCols)) { $return .= 'printing results:
'; foreach($nameCols as $name) { $return .= ' '.$name; } } else { $return .= 'no results or error
'. 'error: ' . $wpdb->print_error(); } $wpdb->hide_errors(); }