2014-03-03 101 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

相關問題