Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ostatni post
Forum PHP.pl > Forum > PHP
VersusPL
Witam.
Piszę prosty skrypt forum i od jakiegoś czasu nie mogę wymyślić, jak zrobić wyświetlanie ostatniego posta na stronie głównej.
Tzn. linku do niego + nazwa.
Wygląda to na razie tak:
  1. <?php
  2. while($rows=mysql_fetch_array($result)){
  3. ?>
  4. <br />
  5. <div class="forums">
  6. <table width="92%" border="0" align="center" cellpadding="3" cellspacing="1">
  7. </table>
  8. <table class="thead" width="92%" border="0" align="center" cellpadding="5" cellspacing="1">
  9. <tr>
  10. <td width="10%" align="center"><strong>Icon</strong></td>
  11. <td width="65%" align="center"><strong>Forum</strong></td>
  12. <td width="25%" align="center"><strong>Last post</strong></td>
  13. </tr>
  14. <tr>
  15. <td align="center" class="row"><img src="images/icons/post.png" border="0" /></td>
  16. <td class="row"><a href="forum.php">Forum</a><br /></td>
  17. <td class="row"><? echo $rows['datetime']; ?><br /><a href="thread.php?id=<? echo $rows['id']; ?>"><? echo $rows['topic']; ?></a><br /></td>
  18. </tr>
  19. <tr>
  20. <td colspan="5" valign="bottom" align="right" bgcolor="#E6E6E6"><img src="images/icons/admin.png" border="0" /> <a href="admin/index.php">Administrative Control Panel</a></td>
  21. </tr>
  22. </table>
  23. <?php
  24. }
  25. ?>

No i niestety zaczyna mi wyświetlać wszystkie tematy, a chcę tylko ostatni.
Tabela tematów - forum_question.php

Proszę o pomoc.
ADeM
Słowa klucze: ORDER BY, LIMIT
VersusPL
Można prosić jakoś dokładniej?
To znaczy, jak wstawić to w ten kod:
  1. <?php
  2. while($rows=mysql_fetch_array($result)){
  3. ?>
ADeM
Pokaż co to jest $result.
VersusPL
  1. <? echo $rows['datetime']; ?><br /><a href="thread.php?id=<? echo $rows['id']; ?>"><? echo $rows['topic']; ?>

Przed chwilą próbowałem to napisać, jednak cały skrypt zawieszał przeglądarkę, więc go usunąłem.
ADeM
Ech... Pokaż kod odpowiedzialny za wybieranie danych z bazy. Bo to zapytanie trzeba zmienić. Prawdopodobnie masz je w zmiennej $result.
mmica
Hey ;]

Pomogłoby gdybyś pokazał zapytanie do bazy. Tak jak inni już napisali - pokaż zmienną $result.
Ale myślę, że starczy Ci coś w tym stylu:
  1. SELECT co_tam_chcesz FROM nazwa_tabeli ORDER BY id DESC LIMIT 1

Mam nadzieję, że masz coś takiego jak `id` lub cokolwiek innego po czym możesz jednoznacznie zidentyfikować Twoje posty. Zmieniając zapytanie najłatwiej osiągniesz to, co sobie zażyczyłeś.

Pozdrawiam,
mmica
VersusPL
Adem:
  1. <?php
  2. $host="localhost"; // Host name
  3. $username="clubpeng_irbb"; // Mysql username
  4. $password="-----"; // Mysql password
  5. $db_name="clubpeng_irbb"; // Database name
  6. $tbl_name="forum_question"; // Table name
  7.  
  8. // Connect to server and select databse.
  9. mysql_connect("$host", "$username", "$password")or die("cannot connect");
  10. mysql_select_db("$db_name")or die("cannot select DB");
  11.  
  12. $sql="SELECT * FROM $tbl_name ORDER BY id DESC";
  13. // OREDER BY id DESC is order result by descending
  14. $result=mysql_query($sql);
  15. ?>
ADeM
  1. $sql="SELECT * FROM $tbl_name ORDER BY id DESC LIMIT 1";
VersusPL
Jak mam umieścić LIMIT 1 w:
  1. <?php
  2. while($sql=mysql_fetch_assoc($result)){
  3. ?>

sad.gif
ADeM
LIMIT 1 Masz umieścić w zapytaniu. Podałem Ci dokładnie co masz wkleić.
Wklej do:
  1. $sql="SELECT * FROM $tbl_name ORDER BY id DESC";
VersusPL
ADeM, dziękuję bardzo! Nareszcie działa. Daję pomógł. smile.gif
Temat raczej do zamknięcia.
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.