gpt4 book ai didi

php - 在使用 PHP 转换 JSON 数组中的 MySql 输出时卡住了

转载 作者:行者123 更新时间:2023-11-30 23:18:29 24 4
gpt4 key购买 nike

我正在制作一个 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' 这本书上搜索了好几天,我已经多次更改我的代码,无论我尝试什么,它都会继续这样做。

有谁知道我应该怎么做才能得到一个数组,其中包含所有使用此脚本找到的公司,而不是这 2 个?

非常欢迎任何帮助,在此先感谢您!

最佳答案

您正在为每一行回显 JSON,而不是为完整构建的数组。将您的 print 语句移到循环之外。

$companies = array();
while ($row = mysql_fetch_assoc($query)) {
$companies['companies'][] = $row;

}
print json_encode($companies);

或者更好的是,您可能不想在搜索功能中回显任何内容,而是将其留给调用者。看来您可能已经打算在这里执行此操作:

$result = search($companyCity);
echo $result;

唯一的问题是 search() 函数不返回任何值,因此 $result 将为空。您应该决定将结果回显给客户端的位置并保持一致。

关于php - 在使用 PHP 转换 JSON 数组中的 MySql 输出时卡住了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16528292/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com