显示数据库中的列值

Posted

技术标签:

【中文标题】显示数据库中的列值【英文标题】:Display column values from database 【发布时间】:2011-04-23 01:05:17 【问题描述】:

我正在尝试显示由我的 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

谁能帮帮我?

【问题讨论】:

【参考方案1】:

您似乎需要数据而不是列信息。所以你需要another function。

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


编辑

好的,这个怎么样:

$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 或找出错误所在,那我就迷路了。

【讨论】:

您是否将“mytable”替换为$table_name 的内容?并且您的列在数据库中是否确实称为“id”或其他内容。 我用 $table_name 及以上替换了我的表;全局 $table_name。这适用于所有其他实例。是的,它被称为“id”。 我发布了一个新的,希望这有效。 $wpdb->prepare 不是绝对必要的,但可以帮助您抵御 SQL 注入攻击。 这是我得到的: 从表中列出:$table_name WordPress 数据库错误:[您的 SQL 语法有错误;检查与您的 mysql 服务器版本相对应的手册,以在第 1 行的 '''' 附近使用正确的语法] SELECT id FROM '' 没关系。设法得到它排序。没有正确定义 $table_name。我的错。对不起。无论如何感谢一百万:)【参考方案2】:

这个问题可能有点晚了,但我认为它仍然与当今的 WordPress 世界以及我创建自己的插件时遇到的情况有关。

所以对其他人来说,这对我有用。 OP几乎拥有它。但是,$wpdb->get_col_info() 依赖于缓存结果,因此需要首先调用 $wpdb->get_results 或 get_row 或查询。 :)

我也喜欢 littlegreen 的错误处理。

功能测试() 全局 $wpdb, $table_name; $wpdb->show_errors(); $return = '从表中列出:'.$table_name.''; $results = $wpdb->get_results("SELECT * FROM ".$table_name); $nameCols = $wpdb->get_col_info('name'); if (is_array($nameCols)) $return .= '打印结果:'; foreach($nameCols 作为 $name) $return .= ' '.$name; 别的 $return .= '没有结果或错误'。 '错误: ' 。 $wpdb->print_error(); $wpdb->hide_errors();

【讨论】:

以上是关于显示数据库中的列值的主要内容,如果未能解决你的问题,请参考以下文章

如何根据一个数据帧中的列值和R中另一个数据帧的列标题名称有条件地创建新列

使用 PHP 显示单独的列值

折叠火花数据框中的列值

如何对一个数据框中的列值求和并将结果添加为另一个数据框中的列?

计算由另一列值分组的列值在 pandas 数据框中的共现

从 Kentico 10 中的自定义表重复器中过滤重复的列值