2013-05-09 129 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