2014-03-06 3 views
-1

쿼리와 속성 집합 사이의 거리를 계산하기 위해 다음 코드를 작성했습니다. 그러나 모든 루프에 대해 제품 속성이 동일하게 반환됩니다. 실제로는 그렇지 않습니다. 그것은 wpdb 변수와 관련이 있을까요?FOREACH 루프에서 변수가 재설정되지 않습니다.

루프의 맨 위에서 변수를 0으로 재설정하려고 시도했지만 설정을 시도했습니다. 여러 제품의 거리 값이 다를 경우 코드가 올바르게 작동합니다.

아래의 코드를 참조하십시오

 $the_query = get_posts('cat=2&post_type=product&fields=ids'); 
    if($the_query){ 
     foreach($the_query as $id) { 
       //reset variables at begining of foreach loop 
       $distance = 0; 
       $product_head_standard = 0; 
       $product_loft = 0; 
       $product_shape = 0; 
       $product_trajectory_head_design = 0; 
       //queries for product attributes 
       $product_head_standard = $wpdb->query("SELECT meta_value FROM wp_postmeta 
WHERE meta_key = 'head_standard' AND post_id =".$id); 
       $product_shape = $wpdb->query("SELECT meta_value FROM wp_postmeta 
WHERE meta_key = 'shape' AND post_id =".$id); 
       $product_trajectory_head_design = $wpdb->query("SELECT meta_value 
FROM wp_postmeta WHERE meta_key = 'trajectory_head_design' AND post_id =".$id); 
       $product_loft = $wpdb->query("SELECT meta_value FROM wp_postmeta 
WHERE meta_key = 'loft' AND post_id =".$id); 
       echo $product_head_standard."productheadstandard"; 
       echo $product_loft."productloft"; 
       echo $product_shape."shape"; 
       echo $product_trajectory_head_design."producttracjectory"; 
       //calculate total height 
       $height_variables = $product_trajectory_head_design + $product_loft; 
       //calculate difference between search query and product attributes 
       $distance = ABS($form_standard-$product_head_standard) 
+ ABS($form_desired_shape-$product_shape) + ABS($form_desired_height-$height_variables); 
       //output 
       echo "<tr><p>id".$id."  distance".$distance."</p></tr>"; 
+0

당신이 게시 한 이유를 알기가 어렵습니다. 어쩌면 합계가 $ distance 인 수를 반향 출력하고 데이터베이스의 제품에 실제로 다른 데이터가 있는지 확인하십시오. –

+0

Ok 나는 그것을 반향하고 두 ID에 대해 정확히 동일한 결과를 리턴합니다. –

+0

1productheadstandard1productloft0shape1producttracjectory id95 distance5 1productheadstandard1productloft0shape1producttracjectory id91의 distance5 –

답변

1

나는 하나의 값은 당신이 점점 숫자를 믿고이

$value = $wpdb->get_var("sql goes here"); 

처럼 get_var를 사용하여 선택해야합니다 생각의 값이 당신보다 다른 뭔가있다 를 찾고 있습니다. 아마 결과의 수.

+0

완벽한 감사합니다! –

관련 문제