2017-03-23 3 views
0
public function gettopfilteredcourse($filtertype, $topfiltername, $filterid){ 
    $sql="SELECT * FROM course c 
      INNER JOIN category s 
      ON c.categoryId=s.categoryId 
      INNER JOIN users u 
      ON c.userId=u.userId"; 

    if($topfiltername == 'trash'){ 
    $sql .= " WHERE isCompleted='3'"; 
    } else if($topfiltername == 'forapproval'){ 
    $sql .= " WHERE isCompleted='1'"; 
    } else if($topfiltername == 'drafts'){ 
    $sql .= " WHERE isDraft='1'"; 
    } else { 
    $sql .= " WHERE isCompleted='2'"; 
    } 

    if($filtertype == 'free'){ 
    $sql .= " AND c.fee=''"; 
    } else if($filtertype == 'paid'){ 
    $sql .= " AND c.fee!=''"; 
    } else { 
    $sql .= " AND c.categoryId='$filterid' "; 
    } 
    $query=$this->db->query($sql); 
    return $query; 
} 

In der ersten wenn Bedingung $topfiltername == 'forapproval' ausgewählt ist, wurde es ordnungsgemäß ausgeführt. Wenn es zu der zweiten Bedingung $filtertype == 'paid' kommt, möchte ich das anhängen, um mit $topfiltername == 'forapproval' zu sein, aber es wurde immer zuerst mit der Bedingung ise Bedingung else Anweisung $sql .= " WHERE isCompleted='2'"; angefügt. Wie bitte, hilf mir bitte.Wie an die zuvor ausgewählte Abfrage Abfrage anhängen?

filter

Antwort

0

wenn Sie codeigniter.use der Datenbank-Bibliothek verwenden. coderigniter.com/userguide3/database/query_builder.html

Verwandte Themen