2012-09-23 8 views
0

현재 특정 가격 범위 내에있는 속성의 수를 계산하려고하는데 실행중인 쿼리는 1의 값만 반환합니다. 분명히 잘못된 것을하고 있습니다. 그것은 MySQL/PhP에 능숙하지 않다는 것을 돕지 않습니다. 누구든지 손을 빌려 주시겠습니까?php - 배열의 값 개수를 카운트

쿼리는 다음과 같습니다 : 사전에

$apart = $wpdb->get_var("SELECT m1.post_id 
    FROM hj_postmeta m1 
    INNER JOIN hj_postmeta m2 ON m1.post_id = m2.post_id 
    WHERE m1.meta_key = 'price' 
    AND m1.meta_value 
    BETWEEN 50000 AND 74999 AND m2.meta_key = 'property_type' 
    AND m2.meta_value = 'apartment'"); 

$apartprice = count($apart); 

많은 감사합니다.

+2

DB에서 'SELECT count (m1.post_id) as count ...'를 계산하도록하십시오. –

답변

4

사용 get_resultsfunction returns a single variable from the databaseget_var 등 :

$apart = $wpdb->get_results("SELECT m1.post_id 
    FROM hj_postmeta m1 
    INNER JOIN hj_postmeta m2 ON m1.post_id = m2.post_id 
    WHERE m1.meta_key = 'price' 
    AND m1.meta_value 
    BETWEEN 50000 AND 74999 AND m2.meta_key = 'property_type' 
    AND m2.meta_value = 'apartment'"); 

$apartprice = count($apart); 

또는 COUNT 모두와 get_var :

$apart = $wpdb->get_var("SELECT COUNT(m1.post_id) 
    FROM hj_postmeta m1 
    INNER JOIN hj_postmeta m2 ON m1.post_id = m2.post_id 
    WHERE m1.meta_key = 'price' 
    AND m1.meta_value 
    BETWEEN 50000 AND 74999 AND m2.meta_key = 'property_type' 
    AND m2.meta_value = 'apartment'"); 

$apartprice = $apart; 
+0

정말 고마워요, +1 환상적인 답변입니다! – Plastika

1

을만큼 당신이 행의 수에 정직 관심으로 :

$apart = $wpdb->get_var("...."); 
$apartprice = $wpdb->num_rows; 

그러나 나는 생각한다 Mihai Iorga's answer은 모든 데이터를 가져올 필요가 있거나 두 변수 옆에 결과 셋을 실제로 처리하지 않으면 데이터베이스에서 위의 주석으로 설명한대로 계산할 필요가있을 때를 대비하여 두 가지 매우 중요한 점을 제시합니다.