Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: warunek
Forum PHP.pl > Forum > PHP
boosik01
  1. $read_mess = $pdo -> prepare('SELECT * FROM messages WHERE receive=? OR receive=? LIMIT 1');
  2. $read_mess->execute(array($id, $player->login));
  3. foreach($read_mess as $read_messages)
  4. {
  5. $read_messages1[] = $read_messages;
  6. }
  7. $read_mess -> closeCursor();
  8. $tpl->assign("read_messages", $read_messages1);


Wszystko ładnie mi pobiera, lecz chciałbym by wyświetlało mi na stronie tylko po 1 wiadomości danego usera, np.:

Nowa wiadomość od: xxxx ; przeczytaj
Nowa wiadomość od yyyy ; przeczytaj

Nie za bardzo mam pomysł jakiego by tu warunku użyć, jeśli byłby ktoś tak miły i nakierował mnie na właściwy tok myślenia, był bym wdzięczny wink.gif
tehaha
Z tego co rozumiem, masz tu jeszcze kolumnę "user", jeżeli chcesz pobrać po jednej wiadomości użytkownika, tak jak napisałeś to wystarczy, że dodasz
  1. GROUP BY user
Aczkolwiek domyślam się, że Tobie chodziło o najnowszą wiadomość każdego użytkownika. Możesz wtedy spróbować tak:
  1. SELECT message, user, MAX(id) FROM tableName GROUP BY user
gdzie id to pole typu primary_key z auto_increment

Więcej info znajdziesz tutaj: http://www.xaprb.com/blog/2006/12/07/how-t...r-group-in-sql/
lukaskolista
Max(id) zwroci najwiekszy id, ale nie najnowszy rekord. Trzeba uzyc zwyklego GRUP BY user_id ORDER BY users.id DESC (lub ustawic domyslne sortowanie tabeli)
tehaha
@lukaskolista to co podałeś niestety również nie zadziała ponieważ grupowanie jest wykonywane przed sortowaniem, miałem nadzieje, że razem z największym ID zostaną zwrócone przypisane do niego wartości ale faktycznie to tak nie działa, w takim razie chyba najprościej będzie zrobić zagnieżdzonego selecta:

  1. SELECT id, message, user FROM (SELECT * FROM tableName ORDER BY id DESC) AS tmp GROUP BY user
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.