2012-05-01 3 views
1

Это MySQL Заявлению оИНЕК В MySQL PHP

$query="SELECT * FROM `error_report` AS e 
       INNER JOIN `pages` AS p ON e.page_id=p.page_id 
       WHERE `task_id` ='".$this->task_id."' AND 
        ((google_host_fail=1 
        OR robots_noindex_nofollow=1 
        OR xrobots_noindex_nofollow=1 
        OR google_cache_fail=1 
        OR forbidden_word=1) 
        OR (google_title_fail=1 AND h1_fail=1 AND h2_fail=1 AND h3_fail=1))"; 

Я хочу здесь, чтобы возвращать результаты при условии, что есть идентификатор задачи .. и или любые из двух satements заключенные в квадратных скобках Проблемы в последнее, где утверждение, я хочу условие, что если все эти поля.

У меня есть другая проблема sql с аналогичным утверждением.

 public function check_success() 
    { 
     $query="SELECT e.* FROM `error_report` AS e 
      INNER JOIN `pages` AS p ON e.page_id=p.page_id 
      WHERE `task_id` ='".$this->task_id."' 
       AND ((google_title_fail=0) OR (google_title_fail=1 AND h1_fail=0))"; 
     $result=$this->db->query($query)->result_array(); 
     if(count($result)>0) 
     { 
      return 1; 
     } 
    return 0; 
    } 

Я хочу, чтобы достичь того же выше .. Но я не вижу, что мои заявления работают

Как можно заключить когда заявления с кронштейнами, так что они будут работать в обе функции ..

public function findFinalResult() 
    { 
     if($this->check_fail()) 
     { 
      return "Failure"; 
     } 
    else if($this->check_success()) 
    { 
     return "Success"; 
    } 
    return "Warning"; 

    } 

Конечные результаты дают сбой каждый раз ..? Зачем ?!?

+0

Возможно, это поможет увидеть источник функции 'check_fail()'. – eggyal

+0

- task_id действительно строка? если вы отлаживаете некоторые обработанные операторы sql и выполняете их непосредственно в браузере sql (например, phpmyadmin), получаете ли вы результаты? – Daxcode

+0

check fail, является первым statenet –

ответ

1
SELECT * FROM error_report AS e INNER JOIN pages AS p ON e.page_id=p.page_id WHERE task_id ='151' AND (OR google_host_fail=1 OR robots_noindex_nofollow=1 OR xrobots_noindex_nofollow=1 OR google_cache_fail=1 OR forbidden_word=1) OR (google_title_fail=1 AND h1_fail=1 AND h2_fail=1 AND h3_fail=1) 

Ошибка возникает из-за ненужной инструкции OR в начале скобок.

...AND (OR google_host_fail=1 OR robots_noindex_nofollow=1 
OR xrobots_noindex_nofollow=1 OR google_cache_fail=1 OR forbidden_word=1)... 
+0

Я исправил его. Нет ошибки ... Но почему он возвращает результаты. –

Смежные вопросы