2015-08-05 2 views
0

Привет Как я могу преобразовать followin запроса таким образом, у меня нет выдаваемой ошибки: Catchable фатальной ошибки:Вставить WHERE, если условие в запрос класса mysql.

Object of class pagination could not be converted to string

$paginate = new pagination($page, 'SELECT * FROM properties WHERE 1', $options); 


      if (!empty($sector)) { $paginate .= " AND sector = :sector"; } 
      if (!empty($property_type)) { $paginate .= " AND property_type = :property_type"; } 
      if (!empty($contract)) { $paginate .= " AND contract = :contract"; } 
      if (!empty($minimum_price)) { $paginate .= " AND price BETWEEN :minimum_price AND :maximum_price"; } 
      if (!empty($m2_from)) { $paginate .= " AND m2 BETWEEN :m2_from AND :m2_until"; } 
      if (!empty($contract)) { $paginate .= " AND bedrooms = :bedrooms"; } 
+0

1 что здесь 'SELECT * FROM properties WHERE 1' – Shehary

ответ

1

$ постраничной является изменяемым объектом класса пагинации , поэтому его тип переменной является объектом. Сначала я создам запрос, а затем создам объект.

Итак, что мы здесь делаем, создается строковая переменная вашего запроса и назначается с помощью запроса defaut SELECT. Затем мы запускаем if statements, и после этого мы его создаем, тем самым вы не пытаетесь добавить строку к типу объекта.

$query= "SELECT * FROM properties WHERE 1"; 

     if (!empty($sector)) { $query .= " AND sector = :sector"; } 
     if (!empty($property_type)) { $query.= " AND property_type = :property_type"; } 
     if (!empty($contract)) { $query .= " AND contract = :contract"; } 
     if (!empty($minimum_price)) { $query .= " AND price BETWEEN :minimum_price AND :maximum_price"; } 
     if (!empty($m2_from)) { $query .= " AND m2 BETWEEN :m2_from AND :m2_until"; } 
     if (!empty($contract)) { $query .= " AND bedrooms = :bedrooms"; } 

$paginate = new pagination($page, $query, $options); 

Edit 1

Кроме того, ваш SELECT запрос неверен. Вам не хватает имени столбца после предложения WHERE.

+0

Что вы предлагаете о столбце отсутствует, Обычно он работает, когда я не использую значения привязки, но в этом случае не выбирают правильные результаты. –

+0

Что именно вы пытаетесь выбрать? Потому что это то, что должно быть в этом запросе. поэтому 'SELECT * FROM properties WHERE some_column_name = 1'. – Script47

+0

это форма поиска, в которой вы выбираете сектор из выпадающего меню, выберите всю строку из свойств таблицы, где sector = '1' –

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