Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ostatnie posty z phpbb inaczej
Forum PHP.pl > Forum > PHP
LamaMASTER
Mam taki kodzik:
  1. <?
  2.  
  3. mysql_connect('localhost','user','haslo');
  4.  
  5. $sql = "SELECT * FROM phpbb_topics ORDER BY topic_last_post_id DESC LIMIT 10;";
  6.  
  7. $wynik = mysql_query($sql);
  8. if(!$wynik) {
  9. echo("Błąd w zapytaniu do bazy danych");
  10. }
  11. else
  12. {
  13. $znalazl = mysql_num_rows($wynik);
  14. for($i=0; $i < $znalazl; $i++)
  15. {
  16. $wiersz = mysql_fetch_array($wynik);
  17. $wiersz[topic_title] = substr($wiersz[topic_title], 0, 22);
  18. echo "<a href=\"viewtopic.php?t=".$wiersz[topic_id]."\">".$wiersz[topic_title]."</a>";
  19. }
  20. }
  21. ?>

Uprościłem go jeszcze nieco layoutowo smile.gif W każdym razie sprawuje się dobrze - wyświetla ostatnie posty. Mam jednak na forum kategorie, które są ukryte i nie chcę, żeby ktoś widział z nich posty. Jak zablokować pokazywanie postów z kategorii o id np. 3, 15 i 17?
Domyślam się, że trzeba będzie jeszcze zrobić SELECT z tabeli z kategoriami, ale jak potem wykluczyć kategorie o wybranych id? if ($id == 15) { }?
hwao
  1. WHERE `id_forum` IN ( 1, 2, 3, 4 )

podajesz dozwolone fora (niestety nie wiem jak zrobic "zaprzeczenie" do tego smile.gif )

  1. SELECT *
  2. FROM phpbb_topics
  3. ORDER BY topic_last_post_id WHERE `id_forum` IN ( 1, 2, 3, 4 ) DESC LIMIT 10



tylko wiesz `id_forum` = nazwa tabeli gdzie jest trzymane id forum biggrin.gif ja nie mam pojecia nie siedizalem w phpbb z 3 lata
LamaMASTER
No właśnie ja też nie przepadam za phpbb, ale muszę to jakoś zrobić. Niestety to co mi podałeś to już wcześniej próbowałem, ale nie ma sensu dodawać zezwolonych kategorii, skoro co chwile są w tym forum jakieś przebudowy/dodawanie nowych. Koniecznie musi być wykluczenie. Ale dzięki smile.gif Więc ktoś wie może jak wykluczyć?
ave
  1. SELECT *
  2. FROM phpbb_topics
  3. ORDER BY topic_last_post_id WHERE `id_forum` NOT IN ( 1, 2, 3, 4 ) DESC LIMIT 10
LamaMASTER
$sql = "SELECT * FROM phpbb_topics ORDER BY topic_last_post_id WHERE 'phpbb_categories' NOT IN (3, 15, 34, 14, 23) DESC LIMIT 10;";

i próbowałem phpbb_categories zastąpić innymi tabelami/rekordami no i "Błąd w zapytaniu do bazy danych". Może ktoś sprawdzić jak to powinno wyglądać?
ave
  1. SELECT *
  2. FROM phpbb_topics
  3. WHERE 'phpbb_categories' NOT IN (3, 15, 34, 14, 23) ORDER BY topic_last_post_id DESC LIMIT 10;
LamaMASTER
Hehe dzięki za wytrwałość. No niestety to jeszcze nie to, ale nie wywala już błędu
  1. $sql = "SELECT *
  2. FROM phpbb_topics
  3. WHERE 'phpbb_forums' NOT IN (3, 15, 34, 14, 23) ORDER BY topic_last_post_id DESC LIMIT 10;";

zmieniłem jeszcze z categories na forums, bo to chodzi o fora jednak smile.gif Z tego co zauważyłem nadal widać posty sad.gif

PS:
wpadłem na taki pomysł:
  1. $sql = "SELECT *
  2. FROM phpbb_topics
  3. WHERE 'forum_id' NOT IN (3, 15, 34, 14, 23) ORDER BY topic_last_post_id DESC LIMIT 10;";

bo każdy topic ma swoje forum_id przyporządkowane i to o to chodzi, ale nadal nie ma efektu
ave
zapytanie jest wporzadku tylko nie wiem jaka jest struktura bazy i jakie relacje pomiedzy tabela postow a tabela katagorii forum.
LamaMASTER
Tabela z tematami to phpbb_topics, oprócz standardowych wartości, każdy topic ma swoje "forum_id", które jak podejrzewam odnosi się jako przydział do danego fora, które siedzą w phpbb_forums. Na chłopski rozum zapytanie działać powinno, ale niestety nie działa. Chciałbyś wiedzieć coś więcej?

EDIT

Ktoś ma jakiś pomysł? Sprawa nadal aktualna
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.