gpt4 book ai didi

PHP - 执行选择查询并循环结果

转载 作者:行者123 更新时间:2023-11-29 12:01:13 27 4
gpt4 key购买 nike

我正在使用 PHP 开发 Web 服务。我在执行选择查询时遇到一些问题。这是我正在使用的代码。

DB_Functions.php

public function getCompanies() {

$result = mysql_query("SELECT * FROM company");
// check for successful store

if ($result) {
return mysql_fetch_array($result,true);
} else {
return false;
}
}

获取公司.php

<?php

require_once 'include/DB_Functions.php';
$db = new DB_Functions();

$companies = array();
//$rows = $db->getCompanies();

while ($row = $db->getCompanies()) {
echo $row['companyName'];
$rowArr = array();
$rowArr['CompanyName'] = $row['companyName'];
$rowArr['CompanyID'] = $row['companyId'];
//array_push($companies, $rowArr);
$companies[] = $rowArr;
}
header('Content-Type: application/json');
$response=array("Companies"=>$companies);
$json = json_encode($response);
echo $json
?>

但问题在于 GetCompanies.php 文件中的 while 循环无限运行。代码看起来没问题。任何帮助,将不胜感激。

最佳答案

当您执行 while ($row = $db->getCompanies()) { 时,您将再次运行整个查询并每次返回第一行。 mysql_fetch_array 返回一行 行。

您需要做的是让 getCompanies() 循环遍历所有行并返回一个数组。

public function getCompanies() {    
$result = mysql_query("SELECT * FROM company");
// check for successful store

if ($result) {
$ret = array();

while($row = mysql_fetch_assoc($result)){
$ret[] = $row;
}

return $ret;
} else {
return false;
}
}

现在,getCompanies() 将返回一个数组,您只需 foreach 即可:

$rows = $db->getCompanies();
foreach($rows as $row){
// ...
}

关于PHP - 执行选择查询并循环结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32337689/

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