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(); }