从MySQL表中检索值并保存在变量中

时间:2012-05-19 00:05:59

标签: php mysql sql wordpress

我有一个表(wp_postmeta),它包含四列(meta_id,post_id,meta_key,meta_value)。 meta_key包含一个名为neighborhood_value的字段,neighbor_value的值存储在meta_value列下。如何从我的表中检索neighborhood_value的内容并将它们用作变量?感谢任何支持

5 个答案:

答案 0 :(得分:0)

如果我理解正确,您想要从meta_value键入一个键列表?

我会在php中执行此操作:(假设您正在使用某种支持此构造的框架。此示例适用于codeigniter框架))

$sql = "SELECT distinct meta_value FROM wp_postmeta"
$result = $db->query($sql)
foreach ($result->reult() as $row) {
  $mydata[] = $row->meta_value;
}

$ mydata现在是包含所有meta_value值的数组。

答案 1 :(得分:0)

我和以下一样。

<?php foreach($values as $value)
{
    $myVarname[$value[valuefield]]=$value[valuefield];

}

$myVarname[field1]="Cow";
$myVarname[field2]="dog";
?>

答案 2 :(得分:0)

好的,因为一切都是元,代码也将是“元”:)

更新 - 现在,当我知道您使用什么来连接数据库时,我可以将我的答案更改为更具体。

global $wpdb;

$sql = "SELECT meta_key, meta_value FROM $wpdb->postmeta WHERE post_id=XXX";

$retMeta = array();
$results = $wpdb->get_results($sql);

foreach ($results as $resultRow)
{
    if (!isset($retMeta[$resultRow['meta_key']]))
    {
        $retMeta[$resultRow['meta_key']] = array();
    }
    $retMeta[$resultRow['meta_key']][] = $resultRow['meta_value'];
}

生成的$ retMeta将是二维数组,然后您将能够使用$ retMeta ['neighbourhood_value'] [0]访问您的邻域值(当然首先您必须检查是否已设置 - { {1}})。

<强> UPDATE2

对于脚本插入数据,它看起来像这样:

isset($retMeta['neighbourhood_value'])

但是你应该使用WP_Query来保持可移植性(wp_postmeta不必以这种方式命名,它可以是wp2_postmeta等)。

答案 3 :(得分:0)

如果你正在处理Wordpress模板文件,例如loop.php等,只需使用方便的get_post_meta()函数。

答案 4 :(得分:0)

您没有指定要用于变量的语言 - 但如果它恰好是MySQL中的SQL,那么您将如何“从MySQL表中检索值并保存在变量中”:

select @var_name := column_name from table_name where other_column = 5;

这是select,并且作为副作用将用户变量@var_name的值分配给column_name的值。

select @var_name := count(*) from other_table where other_column > 5;

将@var_name设置为与条件匹配的记录数。