我正在开发这个消息系统。用户收到一个表单,用户将在其中键入注释,在本例中称为"消息"。当用户访问他的个人资料页面时,会显示他之前在表单中键入并按下"保存"的消息。
屏幕截图:https://i.stack.imgur.com/VEsDg.png
我的数据库有一个名为"messages"的表,其中有列pid
、uid
、message
、time
和picture
,其中uid
是我的"users"表中的uid
。
因此,pid
是自动递增的,而uid
是发布消息的用户的用户id。(用户在表单中发布其图片的URL,该URL随后保存到数据库中的picture
列。
我从数据库获取数据的PHP代码:
<?php
$uid = $this->session->userdata('uid');
$this->db->limit(10); //Use this to limit the entires while you show the entires on the front page.
$query = $this->db->query("SELECT pid, message, time, picture FROM messages WHERE uid = '$uid';");
foreach ($query->result_array() as $row)
{
$message = $row['message'];
$time = $row['time'];
$picture = $row['picture'];
}
?>
我的profile_body.php页面中的html代码位于我的视图文件夹中,其中包含了上面的代码。
<div class="list-group list-group-breakout">
<a class="list-group-item" href="https://assembly.com/assemblycoins">
<div class="chip">
<div class="chip-icon">
<img alt="Coins" width="48" height="48" class="app-icon" src="<?php echo $picture ?>"/>
</div>
<div class="row">
<div class="col-sm-12">
<p class="omega"><?php echo $message;?></p>
</div>
<div class="col-sm-12 right-align">
<p class="gray-2 small omega">
Feb. 21, 2015 <!-- Not from database -->
</p>
</div>
</div>
</div>
对于用户在数据库中键入的消息,我如何只得到10个结果并显示它?我再次尝试粘贴相同的html代码,但它显示的是相同的消息和图片。
谢谢。
以下是要做的一些改进:
$uid = $this->session->userdata('uid');
$result = $this->db->select('pid, message, time, picture')
->where(array('uid' => $uid))
->limit(10)
->get('messages')
->result_array();
$this->load->view('profile_body', $result);
在您的视图中,profile_body.php
文件:
<?php foreach($result as $row): ?>
<div class="list-group list-group-breakout">
<a class="list-group-item" href="https://assembly.com/assemblycoins">
<div class="chip">
<div class="chip-icon">
<img alt="Coins" width="48" height="48" class="app-icon" src="<?php echo $row['picture'] ?>"/>
</div>
<div class="row">
<div class="col-sm-12">
<p class="omega"><?php echo $row['message'];?></p>
</div>
<div class="col-sm-12 right-align">
<p class="gray-2 small omega">
Feb. 21, 2015 <!-- Not from database -->
</p>
</div>
</div>
</div>
<?php endforeach; ?>