2 回答
TA貢獻1828條經驗 獲得超3個贊
該行$loadmaps=$connectmaps->fetch(PDO::FETCH_ASSOC);本身只會獲取結果集的第一條記錄,因此,您可能需要遍歷結果集并將每個結果附加到數組,例如
$mapMarkers = [];while($marker=$connectmaps->fetch(PDO::FETCH_ASSOC)){
array_push($mapMarkers, $marker);}$loadmap_json = json_encode($mapMarkers);您還需要修改您的javascript以期望一組標記,因為您當前的代碼需要一個結果。您還應該預料到沒有結果的可能性(空JSON數組)。
for(var i = 0; i < phpden.length(); i++) {
//Do you process of each marker here... e.g. phpden[i].longt
//Or better... create a function that you call for each marker to add them}只是最后的建議,但如上所述,您應該考慮使用更具描述性的變量名稱。如果你在團隊中工作,不僅僅是為了別人,而是為了你自己。縮寫和不相關的命名變量使您的代碼更難理解。當你的復雜性增加后再回來時,你或其他人會浪費時間去弄清楚什么是“phpden”和“boylam”。
TA貢獻1863條經驗 獲得超2個贊
該fetch()方法僅獲取第一條記錄。相反,使用該fetchAll()方法。這將為您提供集合中每條記錄的多維數組。
另請注意,如果您沒有將任何變量傳遞到查詢中,PDO確實有一個query()方法; 無需準備和執行。
<?php
$connectmaps = $db->query(
"SELECT title, longt, latit, description FROM pages WHERE onmap = 1"
);
$loadmaps = $connectmaps->fetchAll(\PDO::FETCH_ASSOC);
$loadmaps_json = json_encode($loadmaps);
添加回答
舉報
