なんだ、このコードは?

if($_GET['search_keyword']) $where = " 列0 like '%".$_GET['search_keyword']."%'";
if(!$where) $where=" 1= 1 and 列A !='' and 列B=0 ";
else  $where .=" and 1= 1 and 列A !='' and 列B=0 ";

入力情報に応じてSQLを組み立てている部分ですね。で、「 1= 1 」って何よ?
条件に応じてwhere句を書き加えていく場合、最初に「1 = 1」って作って、それに、「 and (条件)」をくっつけていくというのがよくあるパターン。


それによく見ると、二つ目のif文って、一つ目のまとめられるし。
筋悪いなー。


ついでに$_GET['search_keyword'] はSQLインジェクションできるので、エスケープ処理を入れてやる必要がある。

if($_GET['search_keyword']){
  /* エスケープ処理(例) */
  $search_keyword = mysql_real_escape_string($_GET['search_keyword']);
  $where = " 列0 like '%".$search_keyword."%' and 列A !='' and 列B=0 ";
}else{
  $where = "列A !='' and 列B=0 ";
}

でいい。