php - 只获取每个用户的最后一条消息

标签 php mysql pdo

我正在为我的网站做 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/

相关文章:

php - SSL 错误 : Invalid or self-signed certificate - Magento image upload in products

php - 将表从外部页面转储到 json

php - 如何使用ajax将空值传递给PHP?

mysql - DBDParams 密码转义

php - 将 PDO::ATTR_EMULATE_PREPARES 更改为 FALSE 并得到 "Invalid parameter number"错误

php - foreach 不处理插入到 mysql 中的数组

php - 简单查询未运行

mysql - Vagrant + SSH + Bash + MySQL - 运行脚本

php - Laravel 4.2 - 仅选择基于另一个查询的行数为 0 的行

php - 用户特定的 GROUP BY/ORDER BY/LIMIT WHERE 的 mySQL PDO SELECT(两个链表)