php - 如何处理来自 MySQL 的结果对象

标签 php mysql codeigniter

我正在尝试使用 PHP 和 MySQL 来进行一些关系数据库处理。为了合并两个不同表的输出,我在 stackoverflow 上找到了一些帮助。 。其中一个建议是将输出合并到一个结果对象中(据我所知),因此代码如下所示:

// Function to read all projects from database
public function get_projects() {
    $query = "SELECT pt.*, at.* FROM ed_projects as pt, ed_project_address as at WHERE pt.project_id = at.project_id";
    $db_result = $this->db->query($query);
    $result_object = $db_result->result();
    return $result_object;
}

其中 ed_project 是主表的名称,ed_project_address 是子表(或任何名称),其中包含每个项目的街道名称、邮政编码、城市等。地址属性通过project_id链接到项目。

我可以让它在“从数据库读取”部分工作,但是当我尝试使用它时,我收到错误:“ fatal error :无法在 (. ..)”。当我使用 CodeIgniter 时,它会通过两个额外的步骤:

项目 View Controller :

/* index() - Project view controller
 * Handles the showing of the project main page, that is the list of all
 * projects found in the database. See also views/projects/index.php.
 */
public function index() {
    $data['projects'] = $this->project_model->get_projects();
    $data['title'] = 'Ejendomme';
    $this->load->view('templates/header', $data);
    $this->load->view('projects/index', $data);
    $this->load->view('templates/footer');
}

项目 View :

<?php foreach ($projects as $projects_item): ?>

    <h2><?php echo $projects_item['pt.projects']->project_name ?></h2>
    <div class="main"><?php echo $projects_item['at.address_street'] ?></div>

<?php endforeach ?>

错误出现在项目 View (index.php) 的第 3 行中。我已经阅读了大量有关 PHP 中对象的内容,但是添加 CodeIgniter 框架似乎使事情变得模糊,足以让我无法理解: -(。我是不是离这里太远了?或者我只是错过了最后一点?

最佳答案

你刚刚犯了一个错误 在您的模型中,您返回对象

return $result_object;

但你在 View 中将它用作数组。 你应该像这样使用它

  $projects_item->project_name

如果您想在 View 中将其用作数组,您应该像这样从模型返回数据

$result_object = $db_result->result_array();

如果您的两个表具有相同的列名,您的查询也会产生错误。在这种情况下,您必须指定要选择哪个表的哪一列。

关于php - 如何处理来自 MySQL 的结果对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27347476/

相关文章:

php - 在同一行中选择不同的列和其他列

php - sprintf(): Too few arguments是什么意思

mysql - 如何基于解释/索引提高查询性能

javascript - 使用 D3.js 从 MySQL 数据库绘制条形图

php - 无法从sql数据库获取结果

php - 代码点火器/PHP/MySQL : Retrieving data with JOIN

php - Codeigniter 创建 session 和重定向在 IE 中不起作用

php - 如果数据库中的值相同,则添加选中的复选框

javascript - 如何在ajax post中接收ajax回调

php - 创建多维数组的算法