2013-08-21 63 views
0

我不是一個php程序員,但將三個非常相似的查詢拼接在一起,前兩個工作,最後一個函數get_adres沒有返回任何輸出。有什麼問題請問? 編輯:前兩個函數工作正常,最後一個get_adres()返回逗號。三個類似的MySql查詢,其中一個不工作

function get_posit() { 
    global $wpdb; 
    $tbl_ads = $wpdb->prefix."awpcp_ads"; 
    $adid = get_query_var('id'); 
    $ad_lat = $wpdb->get_var($wpdb->prepare("SELECT geo_lat FROM $tbl_ads WHERE ad_id='$adid';")); 
    $ad_lon = $wpdb->get_var($wpdb->prepare("SELECT geo_lon FROM $tbl_ads WHERE ad_id='$adid';")); 
    $adpos = $ad_lat.",".$ad_lon; 
    return $adpos; 
} 

function get_titles() { 
    global $wpdb; 
    $tbl_ads = $wpdb->prefix."awpcp_ads"; 
    $adid = get_query_var('id'); 
    $adtitle = 'Position '.$wpdb->get_var($wpdb->prepare("SELECT ad_title FROM $tbl_ads WHERE ad_id='$adid';")); 
    return $adtitle; 
} 

function get_adres() { 
    global $wpdb; 
    $tbl_ads = $wpdb->prefix."awpcp_ads"; 
    $adid = get_query_var('id'); 
    $street = $wpdb->get_var($wpdb->prepare("SELECT adcontact_countyvillage FROM $tbl_ads WHERE ad_id='$adid';")); 
    $plz = $wpdb->get_var($wpdb->prepare("SELECT adcontact_state FROM $tbl_ads WHERE ad_id='$adid';")); 
    $city = $wpdb->get_var($wpdb->prepare("SELECT adcontact_city FROM $tbl_ads WHERE ad_id='$adid';")); 
    $adrs = $street.",".$plz.",".$city; 
    return $adrs; 
} 
+0

回顯您的查詢並在phpmyadmin中運行查看它是否返回多於一行? –

+1

爲什麼你在一張桌子上有2或3個SELECT?嘗試'「SELECT geo_lat,geo_lon FROM $ tbl_ads WHERE ad_id ='$ adid';」'同時檢查這個[教程](http://net.tutsplus.com/tutorials/php/why-you-should-be-using -phps-pdo-for-database-access /)使用預準備語句。 –

回答

0

get_var返回單個值。爲底部的查詢,請嘗試向它們添加限制1,所以

$street = $wpdb->get_var($wpdb->prepare("SELECT adcontact_countyvillage FROM $tbl_ads WHERE ad_id='$adid' LIMIT 1;")); 
    $plz = $wpdb->get_var($wpdb->prepare("SELECT adcontact_state FROM $tbl_ads WHERE ad_id='$adid' LIMIT 1;")); 
    $city = $wpdb->get_var($wpdb->prepare("SELECT adcontact_city FROM $tbl_ads WHERE ad_id='$adid' LIMIT 1;")); 
+0

謝謝,沒有幫助。在頁面上放置一個if(函數存在),並返回逗號。 – Rinaldo