--这样就对了 你少了一个括号 后面的是或者关系 合起来和show='1' 是并列的关系
select * from news where news.show='1' and ( title like '%".$q."%' or detail like '%".$q."%' or summary like '%".$q."%' or keywords like '%".$q."%')
你sql有问题,你看下你上面的语句:有or,只要满足or 的条件,就会列出记录的,你的show=1不起作用的。同意楼上说的