2013-09-26 4 views
0

У меня есть проблема , когда я получаю запись из базы данныхПоиск записей видимого = 1

mysql_select_db($database_Photo_con, $Photo_con); 
$query_rsPhoto = "SELECT * FROM photographs WHERE visible = 1 ORDER BY id ASC"; 

Это показывает мне все записи с видимым = 1

если поиск

mysql_select_db($database_Photo_con, $Photo_con); 
$query_rsPhoto = sprintf("SELECT * FROM photographs WHERE caption LIKE %s OR caption_2 LIKE %s AND visible = 1 ", GetSQLValueString("%" . $colname_rsPhoto . "%", "text"),GetSQLValueString("%" . $colname_rsPhoto . "%", "text")); 

это показывает мне все Кто-нибудь знает, почему это происходит?

+0

Сколько строк возвращают первый и второй? – Mihai

ответ

2

Это связано с тем, что приоритет оператора (И имеет более высокий приоритет, чем OR), поэтому вы должны использовать скобки.

$query_rsPhoto = sprintf("SELECT * FROM photographs WHERE (caption LIKE %s OR caption_2 LIKE %s) AND visible = 1 ", GetSQLValueString("%" . $colname_rsPhoto . "%", "text"),GetSQLValueString("%" . $colname_rsPhoto . "%", "text")); 

И если GetSQLValueString не возвращают строку в кавычки, вы должны добавить их в запросе

$query_rsPhoto = sprintf("SELECT * FROM photographs WHERE (caption LIKE '%s' OR caption_2 LIKE '%s') AND visible = 1 ", GetSQLValueString("%" . $colname_rsPhoto . "%", "text"),GetSQLValueString("%" . $colname_rsPhoto . "%", "text")); 
+0

пока это работает, большое спасибо за ваше время и ответы. У меня есть семь записей в базе данных, где v = 1, и показывает мне только 7, когда я нажимаю http: //localhost/dwwithphp/public/admin/list_photos_3.php? запрос = & = кнопка поиска –

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