Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2014, 01:19   #1
Blondy
Участник клуба
 
Аватар для Blondy
 
Регистрация: 07.07.2009
Сообщений: 1,385
По умолчанию Kohana 3.0: почему данные в приложении после обновления отображаются не по возрастанию id

Дорогие форумчане, мне всегда казалось что по умолчанию обычная выборка из базы данных выводит данные по возрастанию id (фактически по первой колонке таблицы). То есть для Kohana писать запрос типа
Код:
 $children = ORM::factory('kids')->order_by('id_kids', 'asc') ->find_all();
это масло масленное.

Но неожиданно появилась проблема: после любого обновления данных о ребенке, даже если сменить только одну букву в имени/фамилии "измененный ребенок" почему-то оказывается в конце списка? Смотрю в таблицу базы данных - id ребенка не изменилось. Однако обычный запрос на выборку данных
Код:
 $children = ORM::factory('kids') ->find_all();
после обновления данных и последующего редиректа на предидущую страницу будет упорно прописывать измененную запись в конце списка, пока не пропишешь order by asc

Почему такое происходит?
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan

Последний раз редактировалось Blondy; 13.05.2014 в 01:23.
Blondy вне форума Ответить с цитированием
Старый 13.05.2014, 08:39   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
обычная выборка из базы данных выводит данные по возрастанию id
Вы заблуждались.
По теории реляционных БД (и на практике), результат запроса без указания ORDER BY - не имеет (и не должен иметь) никакого порядка.

Теоретически, вы можете выполнить один и тот же запрос
"SELECT * from Таблица WHERE <условие>"
несколько раз и получить одни и те же записи В РАЗНОМ ПОРЯДКЕ (так, как СУБД удобнее Вам их отдавать).

Поэтому, если Вам важен (по любой причине) порядок записей, то используйте ORDER BY!

p.s. ID внутреннее поле, какая Вам разница, в каком порядке записи в выборке?
Лучше сортировать по полю, которое видно пользователю (по ФИО, например).
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.05.2014, 15:02   #3
Blondy
Участник клуба
 
Аватар для Blondy
 
Регистрация: 07.07.2009
Сообщений: 1,385
По умолчанию

Сережа, спасибо, Вы мне прямо таки америку открыли! Я никогда на такие тонкости внимания не обращала, мне всегда казалось, что приложение считывает через Select данные именно так, как они расположены по порядку в таблице.

Конечно, я буду делась сортировку по фамилии, просто мне хотелось знать - подобные перетасовки данных особенность фреймворка или что-то иное?
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
Blondy вне форума Ответить с цитированием
Старый 13.05.2014, 15:17   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от Blondy Посмотреть сообщение
Сережа, спасибо, Вы мне прямо таки америку открыли! Я никогда на такие тонкости внимания не обращала, мне всегда казалось, что приложение считывает через Select данные именно так, как они расположены по порядку в таблице.

Конечно, я буду делась сортировку по фамилии, просто мне хотелось знать - подобные перетасовки данных особенность фреймворка или что-то иное?
особенность БД.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.05.2014, 17:16   #5
Blondy
Участник клуба
 
Аватар для Blondy
 
Регистрация: 07.07.2009
Сообщений: 1,385
По умолчанию

Уважаемый Пепел Феникса, я так и поняла)))
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
Blondy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Kohana 3.0: как вывести данные модели, используя template? Blondy PHP 0 03.04.2014 23:39
упорядочить данные по возрастанию числовых значений stalin765 Помощь студентам 7 04.06.2012 19:15
В файле f элементы упорядочены по возрастанию.требуется слить эти файлы в один файл,также упорядоченный по возрастанию ayoka Паскаль, Turbo Pascal, PascalABC.NET 2 16.05.2012 21:51
описать процедуру которая объединяет 2 упорядоченных по возрастанию списка в один упорядоченный по возрастанию Анастасья Помощь студентам 0 28.11.2011 17:33
Из двух упорядоченных по возрастанию массивов, получить третий, упорядоченный по возрастанию.(в обычном варианте и через bufalo C# (си шарп) 4 17.10.2011 14:52