Войти

Странная история

16.01.2013 14:16

Сегодня добавил новую статью, после этого статьи стали вести себя странно. Некоторые статьи почему то дублировались, а самая первая наотрез отказалась показываться. Ушел думать.

Вопрос решен. Дело было в запросе к БД, который был некорректно поставлен.

После разбора моего запроса, и прочтение Саней мне лекции о том, "Как можно получить кусок данных из бд", я все так же продолжал успешно тупить. в качестве последней попытки добиться от меня хоть каких то вразумительных действий, он начал кидать мне в чат куски кода, которые я должен был скопировать в свой запрос. Но и тут мои затупы не заставили себя долго ждать и показали себя во всей красе. В итоге, когда до меня стало потихому доходить, как должен был выглядеть запрос, время пришло валить домой. Приехав домой, я с удивлением обнаружил, что запрос уже отлажен и выдает мне то, чего я и хотел. А всего то надо было добавить две строчка кода:

$pageNumber = $pageNumber<=0?1:$pageNumber;
$query = $this->db->get('article', $num, $num*($pageNumber-1));

Первой строчкой мы проверяем значение $pageNumber. Оно не должно быть отрицательным или равным нулю. Если оно отрицательное или меньше ноля, то принудительно показываем первую страницу.

И лишь после этого уже делаем запрос к базе, используя LIMIT, который вызывается с двумя параметрами — с какой записи начинать ($num), и сколько статей выводить ($num*($pageNumber-1)).

Ну вот пожалуй и все, что касается этой истории.

comments powered by Disqus
  BENCHMARKS  
Loading Time: Base Classes  0.0033
Controller Execution Time ( Blog / Show )  0.0059
Total Execution Time  0.0093
  GET DATA  
No GET data exists
  MEMORY USAGE  
2,208,656 bytes
  POST DATA  
No POST data exists
  URI STRING  
blog/show/5
  CLASS/METHOD  
blog/show
  DATABASE:  blogAlenin (Blog:$db)   QUERIES: 3 (0.0005 seconds)  (Hide)
0.0002   SELECT *
FROM `article`
WHERE `id` = '5' 
0.0001   SELECT *
FROM `article`
WHERE `id` = '5' 
0.0001   SELECT *
FROM `categories`
ORDER BY `nameAS
  HTTP HEADERS  (Show)
  CONFIG VARIABLES  (Show)