1

4 つの列 (meta_id、post_id、meta_key、meta_value) を含むテーブル (wp_postmeta) があります。meta_key には、neighborhood_value というフィールドが含まれており、neighborhood_value の値は、meta_value 列に格納されます。テーブルから neighbor_value の内容を取得し、それらを変数として使用するにはどうすればよいですか? どんなサポートでも大歓迎です

4

5 に答える 5

0

わかりました、すべてがメタなので、コードも「メタ」になります:)

更新-DBへの接続に何を使用するかがわかったら、回答をより具体的に変更できます。

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は2次元配列になり、$ retMeta ['neighbourhood_value'] [0]を使用して近隣の値にアクセスできるようになります(もちろん、最初にこれが設定されているかどうかを確認する必要があります- isset($retMeta['neighbourhood_value']))。

UPDATE2

データをインポートするスクリプトの場合、次のようになります。

$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などにすることができます)。

于 2012-05-19T00:16:35.337 に答える
0

loop.phpなどのWordpressテンプレートファイルを使用している場合は、便利なget_post_meta()関数を使用するだけです。

于 2012-05-19T00:16:54.433 に答える
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 値を含む配列になりました。

于 2012-05-19T00:11:14.023 に答える
0

私は以下と同じことをしていました。

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

}

$myVarname[field1]="Cow";
$myVarname[field2]="dog";
?>
于 2012-05-19T00:12:20.850 に答える
0

変数に使用する言語は指定しませんが、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 を条件に一致したレコード数に設定します。

于 2012-05-19T01:44:03.413 に答える