谷歌地图JSON& WordPress的

时间:2012-08-10 19:45:24

标签: php mysql json wordpress google-maps

我的wordpress网站上有一张谷歌地图,这张地图收集了从帖子中创建的标记。为了更好地解释一下,用户添加一个项目,然后根据位置将该项目放在地图上,然后需要总计一个总库存。每个位置应仅生成一个标记以及该标记产品的总库存。我有一些选择下拉列表,让使用过滤器通过标记,并在更改时,更新ajaxed php文件,该文件构建结果的json文件,然后地图javascript循环并显示。

我显示了所有内容,但是,我无法将标记按位置分组并显示总库存。我认为最终的解决方案是让生成json文件的php脚本为每个位置创建一个带有总计的标记,从而无需使用javascript进行过滤。这是我创建JSON文件的PHP。

<?php 

//Header
include "../../../../wp-blog-header.php";

global $wpdb; 
//$wpdb->show_errors();

$eq_type = $_GET['eq_type'];
$sql = " SELECT wp_posts.ID, wp_postmeta.meta_value, wp_postmeta.meta_key
FROM wp_posts 
LEFT JOIN wp_postmeta
ON wp_posts.ID = wp_postmeta.post_id
WHERE wp_posts.post_type = 'equipment'
AND wp_posts.post_status = 'publish'
AND wp_postmeta.meta_key NOT LIKE '%_yoast_wpseo%'
AND wp_postmeta.meta_key NOT LIKE '%_edit%'
";
$posts = $wpdb->get_results($sql);
$arr = array();
foreach ($posts as $post):
$arr["item-".$post->ID][$post->meta_key] = $post->meta_value;   
//print $post->ID.' - '.$post->meta_key." - ".$post->meta_value."<br />";
endforeach;

$fp = fopen('../json/json-equipment.json', 'w');
fwrite($fp, json_encode($arr));
fclose($fp);

?>

它会像这样生成JSON输出......

    {
     "item-111":
      {"eq_type":"Dump Truck","eq_region":"Alberta","eq_total_inventory":"123"},
     "item-112":
      {"eq_type":"Dump Truck","eq_region":"British Columbia","eq_total_inventory":"234"},
     "item-113":
      {"eq_type":"Dump Truck","eq_region":"British Columbia","eq_total_inventory":"23"},
     "item-114":
      {"eq_type":"Digger","eq_region":"Manitoba","eq_total_inventory":"23"}
    }

所以希望我已经足够清楚了,每个位置只需要生成一个标记,每个位置的总库存增加按类型和/或区域过滤...但是分组和总计是什么真的很难过我。询问任何信息!

0 个答案:

没有答案