gpt4 book ai didi

php 函数不返回 foreach 中 MySQL 查询的所有结果

转载 作者:行者123 更新时间:2023-11-29 14:05:04 25 4
gpt4 key购买 nike

嘿,大家好,我对一个从 MySQL 数据库检索数据的函数有一个小问题,然后我使用 foreach 循环迭代结果,检查一个值是否为空,如果为空,则将其替换为另一个值值(value)。

这个函数的问题是,返回数据后我只能查看从数据库检索到的一条记录。可能很简单,但超出了我的范围。

我想在将其传递给 Controller ​​或 View 之前执行此操作。也许这对于 foreach 循环是不可能的?我缺少什么?

这是我的代码示例。

public function get_basic_user_data(){
$sql = 'SELECT Account.First_Name, Account.Last_Name, Account.User_Name, Profile_Photos.Thumb_Url
FROM Account
LEFT JOIN Profile_Photos ON Account.idAccount = Profile_Photos.Account_Id
AND Profile_Photos.Active = 1
WHERE Account.idAccount != ?';
$account_id = $this->get_account_id();
$data = $this->db->query($sql, $account_id);

foreach($data->result() as $row){

if($row->Thumb_Url == NULL){
$image = base_url().'assets/images/no_photo_thumb.png';
}else{
$image = $row->Thumb_Url;
}


$new_data = new stdClass;
$new_data->First_Name = $row->First_Name;
$new_data->Last_Name = $row->Last_Name;
$new_data->User_Name = $row->User_Name;
$new_data->Thumb_Url = $image;

}

return $new_data;

}

希望有人能帮我解决这个问题吗?谢谢!

最佳答案

目前您只是返回最后一个数据行。像这样更改代码以从该函数返回所有行的数组:

$rows = array()
foreach($data->result() as $row){

if($row->Thumb_Url == NULL){
$image = base_url().'assets/images/no_photo_thumb.png';
}else{
$image = $row->Thumb_Url;
}


$new_data = new stdClass;
$new_data->First_Name = $row->First_Name;
$new_data->Last_Name = $row->Last_Name;
$new_data->User_Name = $row->User_Name;
$new_data->Thumb_Url = $image;

$rows[] = $new_data;
}

return $rows;

这样从数据库返回的每一行都将被添加到名为 $rows 的数组中。最后您必须返回新数组。

关于php 函数不返回 foreach 中 MySQL 查询的所有结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14517652/

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