2013-05-09 146 views
0

我有很多地方通过。之前,我只是静静地设置这些位置。现在,我创建了一个公司表格,并创建了一个用于添加,删除和更新公司详细信息的界面。因此,自创建通行证以来,我应该创建公司的这些位置。因此,我应该如何动态设置它们?我用这样的代码静态地点:
如何设置动态通过位置

$pass->setJSON('{........... 
"locations" : [ 
    { 
     "longitude" : 104.89529371261597, 
     "latitude" : 11.576150037278605, 
     "relevantText": "CamMob (dis. 1%)" 
    }, 
    { 
     "longitude" : 104.89823341369629, 
     "latitude" : 11.570705493829758, 
     "relevantText": "ITC (dis. 2%)" 
    }, 
    { 
     "longitude" : 104.91380631923676, 
     "latitude" : 11.553425198985883, 
     "relevantText": "Digi (dis. 10%)" 
    }, 
    { 
     "longitude" : 104.92096781730652, 
     "latitude" : 11.569580835552655, 
     "relevantText": "Central market (dis. 10%)" 
    }, 
    { 
     "longitude" : 104.89310503005981, 
     "latitude" : 11.569444194519487, 
     "relevantText": "IFL (dis. 20%)" 
    }, 
    { 
     "longitude" : 104.89041209220886, 
     "latitude" : 11.568655879564044, 
     "relevantText": "RUPP (dis. 5%)" 
    }, 
    { 
     "longitude" : 104.89643096923828, 
     "latitude" : 11.568613836037402, 
     "relevantText": "Children hospital (dis. 50%)" 
    }, 
    { 
     "longitude" : 104.89986419677734, 
     "latitude" : 11.566343476220418, 
     "relevantText": "Santhormuk high school (dis. 15%)" 
    }, 
    { 
     "longitude" : 104.89693522453308, 
     "latitude" : 11.573774631737194, 
     "relevantText": "Royal ratanak hospital (dis. 25%)" 
    }, 
    { 
     "longitude" : 104.89693522453308, 
     "latitude" : 11.573774631737194, 
     "relevantText": "AEU (dis. 30%)" 
    }, 
    { 
     "longitude" : 104.8942369222641, 
     "latitude" : 11.561511017118434, 
     "relevantText": "Moon Car Wash (dis. 10%)" 
    }, 
    { 
     "longitude" : 104.92413818836212, 
     "latitude" : 11.553772076702026, 
     "relevantText": "Auto Spa (dis. 10%)" 
    }, 
    { 
     "longitude" : 104.9108076095581, 
     "latitude" : 11.545604569281316, 
     "relevantText": "Penh Chet (dis. 5%)" 
    }, 
    { 
     "longitude" : 104.89751189947128, 
     "latitude" : 11.590985354685541, 
     "relevantText": "E-garage (dis. 5%)" 
    }, 
    { 
     "longitude" : 104.91095378994942, 
     "latitude" : 11.562604174491218, 
     "relevantText": "Futaba Garage (dis. 5%)" 
    }, 
    { 
     "longitude" : 104.91638526320457, 
     "latitude" : 11.55557478276799, 
     "relevantText": "Haojue Motorcycle (dis. 3%)" 
    }, 
    { 
     "longitude" : 104.90114092826843, 
     "latitude" : 11.545636104516502, 
     "relevantText": "Ice City Skating Rink (dis. 20%)" 
    }, 
    { 
     "longitude" : 104.93705168366432, 
     "latitude" : 11.5573354320172, 
     "relevantText": "Galaxkate (dis. 10%)" 
    }, 
    { 
     "longitude" : 104.92472290992737, 
     "latitude" : 11.553572359281521, 
     "relevantText": "G-rise photography (dis. 20%)" 
    }, 
    { 
     "longitude" : 104.92827415466309, 
     "latitude" : 11.556431458262171, 
     "relevantText": "Portor School International Kindergarten (dis. 5%)" 
    }, 
    { 
     "longitude" : 104.92472290992737, 
     "latitude" : 11.553572359281521, 
     "relevantText": "Cambridge International School of Cambodia (dis. 15%)" 
    }, 
    { 
     "longitude" : 104.89523202180862, 
     "latitude" : 11.569042154169637, 
     "relevantText": "EZECOM (dis. 35.5%)" 
    } 
    ] 
    }'); 

+0

取出记录,产生一个数组,并将其编码成json字符串。 – Rikesh 2013-05-09 04:47:11

+0

如何使用数组通过从公司表中进行选择来设置它们? – malinchhan 2013-05-09 04:47:26

+0

“locations”:[ {“longitude”:“'。$ long。'”, “latitude”:“'。$ lat。'”, “relevantText”:“'。$ name。' '。$ discount。'“ }} – malinchhan 2013-05-09 04:57:47

回答

1

我只是试试这个,我可以看到像我写的静态结果:

$query5 = mysql_query("select * from company");

while ($row5 = mysql_fetch_array($query5)){ $companyName = $row5['relevantTextName']; $discount = $row5['relevantTextDiscount']; $long = $row5['longitute']; $lat = $row5['latitute']; $link = $row5['link']; $location['locations'][] = array("longitute" => $long, "latitute" => $lat, "relevantText" => $companyName." (" . $discount. "%)"); } $jsonString = json_encode($location) ; error_log("Locations: ".$jsonString,0);
2

$qry = mysql_query($conn, "select longitude, latitude, relevantText from location_table"); 
$ret = array(); 
while($rec = mysql_fetch_assoc($qry)){ 
    $ret[] = $rec; 
} 
// return or print or do something with the data here. 
return json_encode(array("locations"=>$ret)); 

json_encode将返回numericaly索引PHP数组作为JSON数组和字符串与数组的索引作为JavaScript对象......希望这有助于

+0

谢谢,我会测试它! – malinchhan 2013-05-09 05:10:01

+0

另外请记住,通行证只能有10个地点。其余的将被忽略,所以你应该在查询中加入LIMIT 10,并且应该添加一个WHERE或ORDER BY的条件来提供一些逻辑来选择10。 – PassKit 2013-05-09 05:12:26

+1

看着你试图复制最后一行的JSON实际上应该读取返回json_encode(array(“locations”=> $ ret)); – Orangepill 2013-05-09 05:13:02

1

尝试这样的..

<?php 
$locations = array(); 
$result = $mysqli->query("select longitude, latitude, relevantText FROM company"); 

$inc=0; 
while ($row = $result->fetch_array()){ 
     $locations['locations'][$inc]['longitude'] = $row['longitude']; 
     $locations['locations'][$inc]['latitude'] = $row['latitude']; 
     $locations['locations'][$inc]['relevantText'] = $row['relevantText']; 

    $inc++; 
    } 

echo json_encode($locations); 

?> 
+0

谢谢!我会测试它! – malinchhan 2013-05-09 06:15:20