Модераторы: skyboy

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как выбрать последнее 
:(
    Опции темы
Irokez
Дата 29.5.2005, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: 5
Всего: 53



Цитата
только как ??

Код

$res=mysql_query("SELECT * FROM `members`");
$members = array();
while ($data = mysql_fetch_assoc($res)) {
    array_push($members, $data);
}
$members = array_reverse($members);

PM   Вверх
DENNN
Дата 30.5.2005, 08:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 2
Всего: 43



Цитата(sergej @ 28.5.2005, 14:49)
Насколько я знаю во многих БД это именно так. Без доп. условий записи складываются по мере их добавления и выдаются в обратном порядке.

Могут выдаваться, а могут и нет. В любом случае это не постоянно, т.к. противоречит принципам доступа к информации в БД.
PM ICQ   Вверх
Ignat
Дата 30.5.2005, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 21
Всего: 73



Цитата(Alex0202 @ 28.5.2005, 23:34)
oid = mt_rand(999,999999);

ИМХО, маразм. А почему бы "нормальный" ID не ввести в базу?


--------------------
Теперь при чем :P
PM   Вверх
Bikutoru
Дата 30.5.2005, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлекающийся
**


Профиль
Группа: Участник
Сообщений: 522
Регистрация: 24.5.2005
Где: Москва

Репутация: 1
Всего: 22



Цитата
Если никакая сортировка не указана, то база выдаст записи, отсортированные по времени последнего добавления


Это не совсем верно. Точнее это верно до тех пор, пока ты не удалишь хотя бы одну запись. Данные в БД хранятся с разбиением по т.н. страницам, если ты удаляешь записи, то остальные не смещаются, а остаются на своих местах. А когда ты добавляешь запись, то она добавляется после последней записи или в какие-то свободные области имеющихся страниц. А вывод без сортировки происходит как раз по страницам, т.е. так как записи хранятся на диске...


--------------------
Человек, словно в зеркале мир — многолик, 
Он ничтожен — и он же безмерно велик!
Омар Хайям
PM   Вверх
Гость_Alex0202
Дата 31.5.2005, 06:27 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(Ignat @ 30.5.2005, 10:19)
Цитата(Alex0202 @ 28.5.2005, 23:34)
oid = mt_rand(999,999999);

ИМХО, маразм. А почему бы "нормальный" ID не ввести в базу?

Ну а как подругому ?
помимо таблицы `members` в которой определены oid(mt_rand()) и id(vasya) ... и другие поля,
есть ещё 7 таблиц в которых я орентируюсь по oid.
  Вверх
Гость_Alex0202
Дата 31.5.2005, 06:29 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(DENNN @ 30.5.2005, 08:30)
Цитата(sergej @ 28.5.2005, 14:49)
Насколько я знаю во многих БД это именно так. Без доп. условий записи складываются по мере их добавления и выдаются в обратном порядке.

Могут выдаваться, а могут и нет. В любом случае это не постоянно, т.к. противоречит принципам доступа к информации в БД.

Согласен , в базе нет порядка .
  Вверх
Гость_Alex0202
Дата 31.5.2005, 06:36 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(Irokez @ 29.5.2005, 20:57)
Цитата
только как ??

Код

$res=mysql_query("SELECT * FROM `members`");
$members = array();
while ($data = mysql_fetch_assoc($res)) {
    array_push($members, $data);
}
$members = array_reverse($members);

Да.. это будет работать , но буду использовать это только в совсем крайний случай
  Вверх
lika
Дата 1.6.2005, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 1.6.2005

Репутация: нет
Всего: нет



Можно поступить очень просто:
добавить поле даты создания, например createdate datetime
Во время insert сажать в него sysdate()
Во время выборки
SELECT * FROM members ORDER BY createdate desc;

Тогда будет гарантия, что первой появится именно последняя добавленная запись

Лика
PM MAIL   Вверх
Гость_Alex0202
Дата 2.6.2005, 00:17 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(lika @ 1.6.2005, 12:26)
Можно поступить очень просто:
добавить поле даты создания, например createdate datetime
Во время insert сажать в него sysdate()
Во время выборки
SELECT * FROM members ORDER BY createdate desc;

Тогда будет гарантия, что первой появится именно последняя добавленная запись

Лика

Возможно вы прочитали ни всё
Условие было : Сделать это недобавляя полей.
  Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0900 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.