显示内部连接的名称

htrmnn0y  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(217)

我一直在学习一门关于面向对象php的课程,并希望改进项目的最终结果。
我们已经创建了一个共享板,在这里我们显示每个发布共享的用户的共享,我想在共享页面中添加发布共享的用户。
到目前为止,db中有两个表,其中一个表用于与用户表中的用户链接的具有用户标识的共享
以下是当前代码:
模型:

class ShareModel extends Model{
    public function Index(){
       $this->query('SELECT * FROM shares ORDER BY create_date DESC');
       $rows = $this->resultSet();
       return $rows;
    }
}

视图:

<div>
    <?php if(isset($_SESSION['is_logged_in'])) : ?>
    <a class="btn btn-success btn-share" href="<?php echo ROOT_PATH; ?>shares/add">Share Something</a>
    <?php endif; ?>
    <?php foreach($viewmodel as $item) : ?>
        <div class="well">
            <h3><?php echo $item['title']; ?></h3>
            <small><?php echo $item['create_date']; ?></small>
            <hr />
            <p><?php echo $item['body']; ?></p>
            <small><?php echo $item['user_id']; ?></small>
            <br /><br />
            <a class="btn btn-default" href="<?php echo $item['link']; ?>" target="_blank">Go To Website</a>
        </div>
    <?php endforeach; ?>
</div>

我知道在模型中我需要改变索引如下:

class ShareModel extends Model{
    public function Index(){
        $query1 = $this->query('SELECT * FROM shares ORDER BY create_date DESC');
        $query2 = $this->query('SELECT shares.id, users.name FROM shares INNER JOIN Users ON shares.user_id = users.id');

        return array($query1, $query2);
    }
}

但是如何在视图中访问它以显示sahre的内容和用户的名称呢?

6jjcrrmo

6jjcrrmo1#

据我所知,在视图文件中,打印 $viewmodel . $viewmodel[0] 将返回第一个查询的结果集& $viewmodel[1] 将返回第2个的结果集。
为什么要编写这两个查询?写一个像:

SELECT shares.id,shares.*, users.name 
FROM shares 
INNER JOIN Users ON shares.user_id = users.id 
ORDER BY create_date DESC
apeeds0o

apeeds0o2#

你不打电话 $this->resultSet() 每次查询之后。

public function Index(){
    $query1 = $this->query('SELECT * FROM shares ORDER BY create_date DESC');
    $result1 = $this->resultSet();
    $query2 = $this->query('SELECT shares.id, users.name FROM shares INNER JOIN Users ON shares.user_id = users.id');
    $result2 = $this->resultSet();

    return array($result1, $result2);
}

相关问题