2014-03-03 57 views
0

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

我从一个用户,3另外10个预防性维护。我想只显示最新的一个。

+0

用户array_pop并获取数组的最新元素! – Michael

+0

也许你应该首先将所有变量重命名为英文。一眼就能得到你想要做的事情是一种痛苦。 – Tim

+0

你可能想在你的查询中使用“GROUP BY”,按用户分组,加上通常的黑客“每组top n”的东西。 –

回答

1

只要把LIMIT子句中您的SQL查询和订单由DESC,以获得最新消息:

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

试过了,我只得到一个对话,而不是每个用户。 – mihavidakovic

-1

这样的事情应该帮助

SELECT ID,数据,MAX(PM)FROM ZS哪里za =?分组编号,数据

+0

请解释原因并提供有关此代码更改的更多上下文 – BillyBigPotatoes

相关问题