在我的数据库中,我有像post
和user
这样的表。我希望能够显示谁发布了哪些帖子。
我使用了以下 foreach
循环。我想要实现的是有另一个 foreach
循环,这样我就可以为 user
循环,或者有其他方法可以做到这一点吗?
后表
+--------------+--------------------+-------------------+-------------------
| post_id | user_id | title | time |
+--------------+--------------------+-------------------+-------------------
| 1 | 2 | Good service | 12:00PM |
+--------------+--------------------+-------------------+-------------------
| 2 | 3 | Thank you | 2:46PM |
+--------------+--------------------+-------------------+-------------------
| 3 | 1 | Enquiry | 11:28AM |
+--------------+--------------------+-------------------+-------------------
用户表
+--------------+--------------------+-------------------+
| user_id | name | email |
+--------------+--------------------+-------------------+
| 1 | Jane | jane@gmail.com |
+--------------+--------------------+-------------------+
| 2 | Ben | ben@gmail.com |
+--------------+--------------------+-------------------+
| 3 | John | john@gmail.com |
+--------------+--------------------+-------------------+
$sql = "SELECT * FROM post p inner join user u ";
$sql .= "ON p.user_id = u.user_id ";
$sql .= "LIMIT {$per_page} ";
$sql .= "OFFSET {$pagination->offset()}";
$posts = post::find_by_sql($sql);
foreach ($posts as $post) {
echo "<div class='panel-body'>" .
"<div class='post'>" .
"<h3>";
echo $post->title;
echo "</h3>";
echo "<p><span class='name'>" . $post->name . " - " . $post->time . "</span>";
//the rest are the continuation of the html and php codes for looping `$post`
}
name
取自 user
表,而其他变量取自 post
表。
错误:注意:未定义属性:post::$name
虽然我在post
表中没有name
,但我已经将两个表连接在一起了吗?
最佳答案
$sql = "SELECT * FROM post p inner join user u ";
$sql .= "ON p.user_id = u.user_id ";
$sql .= "LIMIT {$per_page} ";
$sql .= "OFFSET {$pagination->offset()}";
$posts = post::find_by_sql($sql);
foreach ($posts as $jp) {
$user = User::find_by_id($jp->user_id); //add this
echo "<div class='panel-body'>" .
"<div class='post'>" .
"<h3>";
echo $jp->title;
echo "</h3>";
echo "<p><span class='name'>" . $user->name . " - " . $jp->time . "</span>";
//the rest are the continuation of the html and php codes for looping `$post`
}
关于php - 遍历两个数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31690282/