如果 $row 是一个数组,你可以这样做:
function getCSV() {
$mun = $this->input->POST('municipality');
$sl = $this->input->POST('saleslimit');
$q = $this->db->query("
SELECT
RollNum,
Address,
v2_lat,
v2_lng
FROM
tblontario
WHERE
Municipality = '".$mun."'"."
LIMIT ".$sl
);
$row = $q->result();
$csvRow = implode(",",$row);
file_put_contents('/home/apts/Dropbox/ptax.ca/js/salecomps.csv', $csvRow);
echo $csvRow;
}
由于我在那里看到了一个限制,我猜你得到的结果不止一个,而且 $q->result();返回一个结果数组而不是一行,在这种情况下..
function getCSV() {
$mun = $this->input->POST('municipality');
$sl = $this->input->POST('saleslimit');
$q = $this->db->query("
SELECT
RollNum,
Address,
v2_lat,
v2_lng
FROM
tblontario
WHERE
Municipality = '".$mun."'"."
LIMIT ".$sl
);
$res = $q->result();
if(!empty($res)){
$fh = fopen('/home/apts/Dropbox/ptax.ca/js/salecomps.csv','w');
foreach($res as $row){
// as suggested by @GigaWatt, swapped fwrite for fputcsv
fputcsv($fh,$row);
}
fclose($fh);
echo file_get_contents('/home/apts/Dropbox/ptax.ca/js/salecomps.csv');
} else {
echo "";
}
}
编辑:查看 GeoJSON 规范,您可能想要的是:
function getGeoJSON() {
$mun = $this->input->POST('municipality');
$sl = $this->input->POST('saleslimit');
$q = $this->db->query("
SELECT
RollNum,
Address,
v2_lat,
v2_lng
FROM
tblontario
WHERE
Municipality = '".$mun."'"."
LIMIT ".$sl
);
$res = $q->result();
if(!empty($res)){
$geoArr = Array(
"type" => "MultiPoint",
"coordinates" => Array()
);
foreach($res as $row) {
$geoArr["coordinates"][] = Array($row['v2_lat'],$row['v2_lng']);
}
$geoJSON = json_encode($geoArr);
file_put_contents('/home/apts/Dropbox/ptax.ca/js/salecomps.geojson',$geoJSON);
echo $geoJSON;
} else {
echo "{}";
}
}