我正在为我的网站做 PM 系统。我为两个用户的每个对话创建了子页面。我很难对首页进行编程,所有对话都会打印出来。我无法为每个用户仅获取一条和最后一条消息。
这是我的功能:
public function fetch_data($id_uporabnika) {
global $pdo;
$query = $pdo->prepare("SELECT * FROM zs WHERE za = ? ORDER BY datum");
$query->bindValue(1, $id_uporabnika);
$query->execute();
return $query->fetchAll();
}
这是我用于打印对话的代码:
<?php
} else {
$zs = new Zs;
$id_uporabnika = $trenutni['id'];
$zsji = $zs->fetch_data($id_uporabnika);
?>
<h2>Zasebna sporočila</h2>
<ul class="vsi-zsji">
<?php foreach ($zsji as $sporocilo): ?>
<?php $od = $oseba->fetch_data($sporocilo['od']) ?>
<li>
<a href="<?php echo $url; ?>zs/poglej/<?php echo $sporocilo['od']; ?>">
<img src="<?php echo $url; ?>inc/timthumb.php?src=<?php echo $od['slika_potem'] ?>&w=60&h=60" alt="">
<p><b><?php echo $od['uporabnisko_ime'] ?></b></p>
<p><?php echo $sporocilo['vsebina'] ?></p>
</a>
</li>
<?php endforeach ?>
</ul>
<?php } ?>
我收到一位用户的 10 条私信,另一位用户的 3 条私信。我只想显示最新的一个。
最佳答案
只需在 SQL 查询中添加 LIMIT
子句并按 DESC
排序即可获取最新消息:
$query = $pdo->prepare("SELECT * FROM zs WHERE za = ? ORDER BY datum DESC LIMIT 1");
关于php - 只获取每个用户的最后一条消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22149679/