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

时间:2014-03-03 14:45:39

标签: php mysql pdo

我正在为我的网站做PM系统。我为两个用户创建了每个对话的子页面。我很难编写首页,打印所有会话。我不能只为每个用户获得一个和最后一个meassage。

这是我的功能:

    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个PM,另一个用户获得3个PM。我想显示最新的一个。

2 个答案:

答案 0 :(得分:1)

只需在SQL查询中加上LIMIT子句,然后按DESC排序即可获取最新消息:

$query = $pdo->prepare("SELECT * FROM zs WHERE za = ? ORDER BY datum DESC LIMIT 1");

答案 1 :(得分:-1)

这样的事情应该有帮助

SELECT id,datum,max(pm)FROM zs WHERE za =?按ID,数据分组