mysql içine php dizi

3 Cevap php
$sql_where = '';
$exclude = '30,35,36,122,123,124,125'; 

if($exclude != '') 
{     
    $exclude_forums = explode(',', $exclude); 
    foreach ($exclude_forums as $id) 
    { 
        if ($id > 0) 
        { 
            $sql_where = ' AND forum_id <> ' . trim($id); 
        } 
    }
} 

$sql = 'SELECT topic_title, forum_id, topic_id, topic_type, topic_last_poster_id, topic_last_poster_name, topic_last_poster_colour, topic_last_post_time
   FROM ' . TOPICS_TABLE . '
   WHERE topic_status <> 2
      AND topic_approved = 1
      ' . $sql_where . '
   ORDER BY topic_time DESC';

Yukarıdaki kod SQL sorguları görüntülenecek forumun id çıkarmak için kullanabilirsiniz.

Neden çalışmak ve hala görünmüyor?

Herhangi bir çözüm

3 Cevap

Sen = önce nokta kaçırıyorsun

$sql_where .= ' AND forum_id <> ' . trim($id);

Her döngü tekrarında üzerinde $sql_where değişkeni üzerine yazıyorsunuz. Muhtemelen yerine kod ortasında birleştirme operatörü (.) kullanılarak istiyorum:

if ($id > 0) 
{ 
    $sql_where .= ' AND forum_id <> ' . trim($id);
}

Için = değişimini dikkat .=

if($exclude != '') $sql_where = 'AND forum_id NOT IN ($exclude); 

bunun yerine tüm bu dağınık kod :)