我正在制作一个 iphone 应用程序。该应用程序的一部分允许用户在本地搜索公司。
我有一个 MySql 数据库,其中包含可以搜索的公司,我的网站上有一个 php 文件来接收搜索的数据,并将所有找到的公司的 companyName 和 companyLocation 返回到我的应用程序。它看起来像这样:
<?php
if (isset($_GET["companyCitySearchField"])){
$companyCity = $_GET["companyCitySearchField"];
$result = search($companyCity);
echo $result;
}
function makeSqlConnection()
{
$DB_HostName = "******";
$DB_Name = "*******";
$DB_User = "*******";
$DB_Pass = "*******";
$con = mysql_connect($DB_HostName,$DB_User,$DB_Pass) or die(mysql_error());
mysql_select_db($DB_Name,$con) or die(mysql_error());
return $con;
}
function disconnectSqlConnection($con)
{
mysql_close($con);
}
function search($companyCity)
{
$con = makeSqlConnection();
$query = mysql_query("SELECT companyName, companyCity from Company WHERE companyCity = '$companyCity'");
$companies = array();
while ($row = mysql_fetch_assoc($query)) {
$companies['companies'][] = $row;
print json_encode($companies);
}
disconnectSqlConnection($con);
}
?>
当只找到一家公司时,这很好用。它给了我一个完美的 JSON 数组:
{"companies":[{"companyName":"Dijkstra","companyCity":"Geldermalsen"}]}
到目前为止一切都很好。
现在,我在我的数据库中创建了另一家公司,同样以Geldermalsen作为位置。
现在在数据库中找到了 2 家公司。它现在返回的 JSON 数组没有意义:
{"companies":[{"companyName":"Dijkstra","companyCity":"Geldermalsen"}]}{"companies":[{"companyName":"Dijkstra","companyCity":"Geldermalsen"},{"companyName":"testaccount","companyCity":"Geldermalsen"}]}
出于某种原因,它似乎制作了 2 个单独的数组。一个是第一个发现的公司,一个是两者兼而有之。
几天来,我一直在搜索网络、stackoverflow、google,甚至是“PHP 和 MySql for dummies”一书,我已经多次更改我的代码,无论我尝试什么,它都会继续这样做。
有谁知道我应该怎么做才能获得一个包含所有使用此脚本找到的公司的数组,而不是这两个?
非常欢迎任何帮助,在此先感谢您!