Pagina 1 di 1

Escludere Forum da mod "Last Topic"

Inviato: 29/03/2011, 11:35
da Lances
Ciao ragazzi, vado subito al dunque.. Da questa query dovrei fare in modo che una sezione del forum (es la sezione 45) non venga visualizzata (si tratta della mod che fa visualizzare gli ultimi topic nella index). ecco i dati:

Codice: Seleziona tutto

    $sql = "SELECT topic_title, {$table_prefix}topics.forum_id, topic_id, topic_time, topic_type, topic_status, poll_start, topic_last_post_id, topic_poster, topic_last_poster_id, topic_first_poster_colour, topic_last_poster_colour, topic_first_poster_name, topic_last_poster_name, topic_last_post_time, topic_last_post_subject, forum_name, topic_views, topic_replies, icon_id
       FROM " . TOPICS_TABLE . " 
	LEFT JOIN {$table_prefix}forums ON {$table_prefix}topics.forum_id = {$table_prefix}forums.forum_id
       LEFT JOIN {$table_prefix}icons ON {$table_prefix}topics.icon_id = {$table_prefix}icons.icons_id
       WHERE topic_status <> 2
          AND topic_approved = 1
       ORDER BY topic_last_post_time DESC";
Io so che dovrei aggiungere "topic_id not in (45)" ma non mi accetta nulla, è da stamane che provo! Spero in un vostro aiuto!

Re: Escludere Forum da mod "Last Topic"

Inviato: 29/03/2011, 15:03
da Micogian
Presumo che 45 sia il forum_id, non il topic_id, pertanto

Codice: Seleziona tutto

WHERE forum_id <> 45
          AND topic_status <> 2
          AND topic_approved = 1
       ORDER BY topic_last_post_time DESC";
Però potrebbe andare in conflitto con il forum_id della tabella forums, in questo caso bisogna mettere il nome completo del campo (tabella.campo)

Codice: Seleziona tutto

WHERE {$table_prefix}topics.forum_id <> 45

Re: Escludere Forum da mod "Last Topic"

Inviato: 29/03/2011, 15:11
da Lances
Grazie per la risposta! Nulla.. ricevo il seguente errore SQL:

Codice: Seleziona tutto

SQL ERROR [ mysqli ]

Column 'forum_id' in where clause is ambiguous [1052]

SQL

SELECT topic_title, phpbb_topics.forum_id, topic_id, topic_time, topic_type, topic_status, poll_start, topic_last_post_id, topic_poster, topic_last_poster_id, topic_first_poster_colour, topic_last_poster_colour, topic_first_poster_name, topic_last_poster_name, topic_last_post_time, topic_last_post_subject, forum_name, topic_views, topic_replies, icon_id FROM phpbb_topics LEFT JOIN phpbb_forums ON phpbb_topics.forum_id = phpbb_forums.forum_id LEFT JOIN phpbb_icons ON phpbb_topics.icon_id = phpbb_icons.icons_id WHERE forum_id <> 45 AND topic_status <> 2 AND topic_approved = 1 ORDER BY topic_last_post_time DESC LIMIT 6

BACKTRACE

FILE: includes/db/mysqli.php
LINE: 163
CALL: dbal->sql_error()

FILE: includes/db/mysqli.php
LINE: 205
CALL: dbal_mysqli->sql_query()

FILE: includes/db/dbal.php
LINE: 170
CALL: dbal_mysqli->_sql_query_limit()

FILE: includes/last_post.php
LINE: 51
CALL: dbal->sql_query_limit()

FILE: index.php
LINE: 151
CALL: include('includes/last_post.php')
Ci avevo provato pure io.. Conta che devo evitare di far visualizzare + forum (categorie)..

ho provato il secondo esempio e funziona tutto correttamente ma continuo a visualizzare i topic dentro la categoria.. Cmq mi sa che ho fatto un casotto.. Forse devo bloccare i topic direttamente?

EDIT: Il 2° metodo ha funzionato! Non aveva ancora aggiornato... Grazie!