0

カスタム SQL クエリを実行して、2 ロットの post_meta キーとその値を取得しようとしています。これが私のコードです:

<?php
    $queried_post = get_post($post_id);
    $title = $term->name ;
    $userid =  $current_user->user_email;
    $result = mysql_query("SELECT * FROM wp_postmeta  WHERE meta_key='user_programme_name' AND meta_value='".$title."' AND meta_key='user_email' AND meta_value='".$userid."' ");
    $num_rows = mysql_num_rows($result);
    if ($num_rows > 0 ) {
?> 

<p style="width:430px;">You have already requested a place on this course</p>

<?php } ?>

クエリの最初の部分は、キーと値の最初のセットをクエリすると機能します。

meta_key='user_programme_name' AND meta_value='".$title."'

しかし、2番目のロットを追加するとすぐに:

AND meta_key='user_email' AND meta_value='".$userid."'

うまくいきません。私が間違っていることはありますか?

どんな助けでも大歓迎です。

乾杯、ダン

4

2 に答える 2

1

次のようなものを使用します。

$args = array(  'post_type' => 'myposttype',
            'posts_per_page' => …,
            'offset' => …,
            'meta_query'=>array(    
                    'relation' => 'AND',
                    array(
                        'key'=>'_first_key',                    
                    'value'=> youvalue,
                    'type' => 'DATE', // etc.
                    'compare' => '='
                    ),
                    array(
                        'key'=>'_second_key',       
                                        'value'=> youvalue,
                    'type' => 'DATE', // etc.
                    'compare' => '='
                    )
            )
);
$yourloop  = new WP_Query( $args );
于 2012-11-13T12:17:22.907 に答える
1

同じ列で複数の値を選択するための SQL 構文を修正します。

<?php

    $result = mysql_query("SELECT * FROM wp_postmeta  WHERE meta_key IN ('user_programme_name', 'user_email') AND meta_value IN ('.$title.', '.$userid.') ");

?>
于 2012-11-13T11:16:48.230 に答える