从mysql显示内容只返回一条记录

时间:2015-03-08 09:27:38

标签: php mysql

我使用此代码从mysql

中检索与usertype =“user”行关联的所有记录
class user{
public function getnews(){
    $sql5 = "SELECT * FROM news WHERE usertype = 'user'";
    $result = mysqli_query($this->db,$sql5);
    $data = '';
    while($row = mysqli_fetch_assoc($result)){
        $data = '<article>';
        $data .= '<h3>' . $row['title'] . '</h3>';
        $data .= '<p>' . $row['content'] . '</p>';
        $data .= '<footer>By: ' . $row['whoposted'] . ' / ' . $row['dateposted'] . '</footer>'; 
        $data .= '</article>';
    }
    echo $data;
}
}

然后用。

显示记录
$user = new user();

$user->getnews()

我的数据库的结构是。

id, title, content, whoposted, dateposted, usertype.

并假设我有一条记录有usertype =“admin”

id=autoincrement, title="this is the title", content="this is the content", dateposted="2015/03/08", usertype="admin"

和5条具有usertype =“user”的记录

id=autoincrement, title="this is the title", content="this is the content", dateposted="2015/03/08", usertype="user"

现在,正如你从我的mysql查询中看到的那样,我想要获取所有具有usertype =“user”的记录,并且它假设显示除了一个具有usertype =“admin”的记录之外的所有记录但它只显示一个记录。

任何人都知道我的代码有什么问题吗?

任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:3)

你需要在循环之外声明$data,你在循环内部进行,因此在每个循环中它会被覆盖并且你得到最后一个值。

$data = '';
while($row = mysqli_fetch_assoc($result)){
        $data .= '<article>';
        $data .= '<h3>' . $row['title'] . '</h3>';
        $data .= '<p>' . $row['content'] . '</p>';
        $data .= '<footer>By: ' . $row['whoposted'] . ' / ' . $row['dateposted'] . '</footer>'; 
        $data .= '</article>';
    }