El problema es que envias dos veces el Query:
Código PHP:
$SQL = mysql_query("SELECT * FROM ab WHERE ($sql1) AND ($sql2) AND ($sql3); ");
$resultado = mysql_query($SQL) or die ($SQL .mysql_error()."" ) ;
En la primera le pasas el string con el query (correcto), pero en el segundo le pasas el resultado (un recurso o false si tiene error) y por ende te marca el error.
Saludos.