2012-11-13 23 views
0

我想做一個自定義的sql查詢來獲得2批post_meta鍵和那裏的值。這裏是我的代碼:wordpress查詢2組元組鍵

<?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."' 

但只要我添加第二批:

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

它不起作用。有什麼我做錯了嗎?

任何幫助將不勝感激。

乾杯,丹

回答

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); 
+0

你能夠計算行數? – danyo

+0

這個解決方案更友好。 :) – inigomedina

+0

是的,你可以計算行數。 $ yourloop-> found_posts。 – barakadam

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.') "); 

?> 
+0

謝謝!完美地工作! – danyo

+0

只是再看一遍,它似乎沒有工作,因爲我認爲......這兩個值都需要看看。我認爲目前它正在檢測$ userid是相同的,而不是關於我看到的$ title – danyo

+0

。你需要做一個'加入'。與上面的 – inigomedina