Подскажите в чем может быть ошибка? На старом хосте работал, сегодня перенес на новый, вообще перестал Код (Text): if(!empty($_GET['filters'])){ $wh = ' WHERE '; $data = json_decode($_GET['filters']); foreach ($data->rules as $rule) { if(!$first){ $wh .= ' '.$searchData->groupOp.' '; } else { $first=false; } switch ($rule->op) { case 'bw': $wh .= $rule->field." LIKE '".$rule->data."'"; break; } } //определяем команду (поиск или просто запрос на вывод данн } Причем проблема где то именно в цикле так как WHERE печатается
Ну вот полный код: Код (Text): <? include("bd.php"); $page = $_GET['page']; $limit = $_GET['rows']; $sidx = $_GET['sidx']; $sord = $_GET['sord']; if(!$sidx) $sidx =1; // Выполним запрос, который // вернет суммарное кол-во записей в таблице $result = mysql_query("SELECT COUNT(*) AS count FROM personal_users"); $row = mysql_fetch_array($result); // Теперь эта переменная хранит кол-во записей в таблице $count = $row['count']; // Рассчитаем сколько всего страниц займут данные в БД if( $count > 0 && $limit > 0) { $total_pages = ceil($count/$limit); } else { $total_pages = 0; } // Если по каким-то причинам клиент запросил if ($page > $total_pages) $page=$total_pages; // Рассчитываем стартовое значение для LIMIT запроса $start = $limit*$page - $limit; // Зашита от отрицательного значения if($start < 0) $start = 0; if (isset($_GET['_search']) && $_GET['_search'] == 'true') { $first=true; if(!empty($_GET['filters'])){ $wh = ' WHERE 1'; $data = json_decode($_GET['filters']); echo var_dump($_GET['filters']); foreach ($data-> rules as $rule) { echo var_dump($rule); if(!$first){ $wh .= ' '.$searchData->groupOp.' '; } else { $first=false; } switch ($rule->op) { case 'bw': $wh .= $rule->field." LIKE '".$rule->data."'"; break; } } //определяем команду (поиск или просто запрос на вывод данн } } $sql="SELECT * FROM personal_users ".$wh." ORDER BY ".$sidx." ".$sord." LIMIT ".$start.", ".$limit; $res=mysql_query($sql); //echo $sql; $s = "<?xml version='1.0' encoding='utf-8'?>"; $s .= "<rows>"; $s .= "<page>".$page."</page>"; $s .= "<total>".$total_pages."</total>"; $s .= "<records>".$count."</records>"; ... Почему то оба раз выдает NULL хотя в firebug показывает, что данные точно ушли
Проблема в json_decode. Вот та строка которая передается {\"groupOp\":\"AND\",\"rules\":[{\"field\":\"login_user\",\"op\":\"bw\",\"data\":\"202\"}]} Как исправить эту проблему? Добавлено спустя 7 минут: Вопрос закрыт. Спасибо
Код ваще ппц... Возможно включены "Волшебные ковычки", которые следует уже выключать. Код (PHP): $str='{\"groupOp\":\"AND\",\"rules\":[{\"field\":\"login_user\",\"op\":\"bw\",\"data\":\"202\"}]}'; echo stripslashes($str);