народ, привет, помогите. дедйлайн на носу а тут вдруг базу надо было прикрутить, а я даже никогда не работал с ними серьезно. делаю фильтр поиска. PHP: SELECT * FROM sale WHERE type=дом OR room=8 OR type_house=кирпичный OR object=новостройка все бы ничего, но те таблицы которые имеют тип TEXT выдают ошибку. выборка не происходит. или как это назвать. можеть быть проблема в том что все значения с типом TEXT имеют содержание на русском? хотя выводятся на сайт без проблем как и заносятся в бд. помогите.
да, один из генерируемых. все в принципе подобны друг другу. --- Добавлено --- к примеру такие запросы как эти он выдает нормально PHP: SELECT * FROM sale WHERE room=8 PHP: SELECT * FROM sale WHERE room=8 OR id=1 но тут тип данных INTEGER [INT] а в остальных TEXT. и я не знаю что делать. не могу понять в чем ошибка.
Почитай документацию по MySQL, надо всё обрамлять в ' (значения) и ` (имя столбцов, таблиц) Код (Text): SELECT * FROM `sale` WHERE` type`='дом' OR `room`='8' OR `type_house`='кирпичный' OR `object`='новостройка' там в тексте нет переносов, нужно точное соответствие? в phpmyadmin запросы ведут себя так же?
к примеру такие запросы как эти он выдает нормально PHP: SELECT * FROM sale WHERE room=8 PHP: SELECT * FROM sale WHERE room=8 OR id=1 но тут тип данных INTEGER [INT] а в остольн да, абсолютно так же. да, нужно точное соответсвие --- Добавлено --- слишком долго читать документацию. точнее, я эти обязательно займусь, но точно не сейчас. --- Добавлено --- слишком долго читать документацию. точнее, я эти обязательно займусь, но точно не сейчас. --- Добавлено --- SELECT * FROM `sale` WHERE` type`='дом' OR `room`='8' OR `type_house`='кирпичный' OR `object`='новостройка' LIMIT 0, 25 вот что phpmyadmin выдает --- Добавлено --- хелпуйте народ, что делать-то?
Точное соответствие по типу TEXT работает с русским языком. Главное чтобы кодировки были одинаковые. такой запрос работает? Код (Text): SELECT * FROM `sale` WHERE `object`='новостройка' Можешь часть базы для примера выложить на http://sqlfiddle.com/
да, такой работает. я не знаю как выкладывать с базы что-то. там всего одна таблица с 5 строками. 8 столбцов.
я не понял почему, но вот так заработало Код (Text): SELECT*FROM`sale`WHERE`object`='новостройка'OR`type`='дом'OR`room`='8'OR`type_house`='кирпичный' --- Добавлено --- спасибо. но вот последний вопрос. как сделать чтоб еще искало по значению меньше или больше в INTEGER?
http://dev.mysql.com/doc/refman/5.7/en/non-typed-operators.html > Greater than operator < Less than operator Код (Text): WHERE `num` > 50 OR `num` < 100