簡體   English   中英

從MySQL表中檢索值並保存在變量中

[英]Retrieve Value From MySQL Table and Save in Variable

我有一個表(wp_postmeta),其中包含四列(meta_id,post_id,meta_key,meta_value)。 meta_key包含一個名為neighborhood_value的字段,neighborhood_value的值存儲在meta_value列下。 如何從表中檢索neighbourhood_value的內容並將其用作變量? 任何支持表示贊賞

如果我理解正確,您想從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值的數組。

我在做以下事情。

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

}

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

好的,因為所有內容都是元,所以代碼也將是“元” :)

更新 -現在,當我知道您用於連接數據庫的內容時,我可以將答案更改為更具體。

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]訪問鄰域值(當然,首先您必須檢查是否已設置isset($retMeta['neighbourhood_value']) )。

更新2

對於腳本重要數據,它看起來像這樣:

$sql = "SELECT meta_key, meta_value FROM wp_postmeta WHERE post_id=XXX";

$retMeta = array();
$result = mysql_query($sql);

while ($resultRow= mysql_fetch_assoc($result))
{
    if (!isset($retMeta[$resultRow['meta_key']]))
    {
        $retMeta[$resultRow['meta_key']] = array();
    }
    $retMeta[$resultRow['meta_key']][] = $resultRow['meta_value'];
}
mysql_free_result($result);

但是無論如何,您都應該使用WP_Query來保持可移植性(wp_postmeta不必這樣命名,可以將其命名為wp2_postmeta等)。

如果您正在使用Wordpress模板文件(例如loop.php等),則只需使用方便的get_post_meta()函數。

您沒有指定要用於變量的語言-但是,如果它恰好是MySQL中的SQL,請按以下步驟“從MySQL表中檢索值並保存在變量中”:

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

這將進行選擇,並且作為副作用,將用戶變量@var_name的值分配給column_name的值。

要么

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

將@var_name設置為符合條件的記錄數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM