쿼리와 속성 집합 사이의 거리를 계산하기 위해 다음 코드를 작성했습니다. 그러나 모든 루프에 대해 제품 속성이 동일하게 반환됩니다. 실제로는 그렇지 않습니다. 그것은 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>";
당신이 게시 한 이유를 알기가 어렵습니다. 어쩌면 합계가 $ distance 인 수를 반향 출력하고 데이터베이스의 제품에 실제로 다른 데이터가 있는지 확인하십시오. –
Ok 나는 그것을 반향하고 두 ID에 대해 정확히 동일한 결과를 리턴합니다. –
1productheadstandard1productloft0shape1producttracjectory id95 distance5 1productheadstandard1productloft0shape1producttracjectory id91의 distance5 –