これはmysqlステートメントです
$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))";
ここで、タスク ID があるという条件で結果を返すようにしたい.. and または括弧で囲まれた 2 つのステートメントのいずれか 問題は、最後の where ステートメントにあります。
同様のステートメントで別の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;
}
上記と同じことを達成したい..しかし、私のステートメントが機能しているとは思わない
両方の関数で機能するように、where ステートメントを角かっこで囲むにはどうすればよいですか?
public function findFinalResult()
{
if($this->check_fail())
{
return "Failure";
}
else if($this->check_success())
{
return "Success";
}
return "Warning";
}
最終結果は毎回失敗します..?どうして ?!?