X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Вывод данных через сортировку в mysql
kvins
kvins
Topic Starter сообщение 20.8.2012, 18:52; Ответить: kvins
Сообщение #1


Щас мне нужно отредактировать сайт , и вытаскивать последний элемент с таблицы к примеру

SELECT * FROM tovars WHERE razdel='$cat' ORDER BY id DESC

строка id в таблице с первичным ключем , тоесть сама выставляется

Не знаю почему , но в базе иногда строка id идет не по порядку , сбивается и иногда вытаскивается не то что мне нужно.

тоесть записались id 45 , 46 , 47 а потом на тебе 50 а после этого 48, 49

Есть ли более точная выборка их базы чем DESC ?


--------------------
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Pepper
Pepper
сообщение 20.8.2012, 18:57; Ответить: Pepper
Сообщение #2


Не по порядку в phpmyadmin, может быть?

Экспортируйте таблицу (структуру) и покажите тут. Код будет выглядеть как CREATE TABLE...


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
rjksdfhe
rjksdfhe
сообщение 20.8.2012, 19:09; Ответить: rjksdfhe
Сообщение #3


Не знаю почему , но в базе иногда строка id идет не по порядку , сбивается и иногда вытаскивается не то что мне нужно.
тоесть записались id 45 , 46 , 47 а потом на тебе 50 а после этого 48, 49
Есть ли более точная выборка их базы чем DESC ?


Всё правильно, по логике баз данных.

Если были удалены какие-то строки в середине, то при добавлении новых сначала ищутся пустые места среди удалённых, и туда записывается новая строка. Работает логика оптимизации занимаемого дискового пространства.

Для программы это всё равно, как они физически расположены в БД. Если вызываете с "ORDER BY id DESC", то всё обработается как надо. А физически - будут идти не по порядку. При выгрузке порядок физический.

Или такой вариант выбора последней записи (хотя и первые должны работать):

class MySQL {
...
    function next () { // получение значения AUTO_INCREMENT
        $table=$this->autoModule ($table);
        //$r=$this->getrow ("SHOW TABLE STATUS FROM {$this->access[3]} LIKE '$table'");
        //return $r['Auto_increment'];
        // на nic.ru это не работает, приходится как ниже
        $next=1+$this->get ("SELECT max(id) FROM $table");
        $this->query ("ALTER TABLE $table AUTO_INCREMENT=$next");
        return $next;
    }
...
}


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
kvins
kvins
Topic Starter сообщение 20.8.2012, 19:38; Ответить: kvins
Сообщение #4


(rjksdfhe @ 20.8.2012, 18:09) *
Если были удалены какие-то строки в середине, то при добавлении новых сначала ищутся пустые места среди удалённых,


Вот да такая фигня скорее всего и была (потому что я не видел новые записи в конце списка), щас почему то все окей работает , но для этого пришлось пустышками забросать , потому что как то он мне не коректно выводил информацию , а по id как раз формировались картинки , вчера все наладилось , но я подумал может есть что понадежней чем тот вывод .

Ну раз товары вроде больше не должны из середины удалять , то думаю все окей будет

(rjksdfhe @ 20.8.2012, 18:09) *
Работает логика оптимизации занимаемого дискового пространства.


И еще раз спс за инфу , раньше не знал об этом и не мог понять


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
kolega
kolega
сообщение 20.8.2012, 21:00; Ответить: kolega
Сообщение #5


SELECT * FROM tovars WHERE id = (SELECT MAX(id) FROM tovars WHERE razdel='$cat') LIMIT 1


Сообщение отредактировал kolega - 20.8.2012, 21:05
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
kvins
kvins
Topic Starter сообщение 30.8.2012, 13:46; Ответить: kvins
Сообщение #6


(kolega @ 20.8.2012, 20:00) *


Так и думал что есть какие то хитрости с нужным , выводом , тока выборку чуть поправил , потому что у тебя немного не точно

SELECT * FROM tovars WHERE id = (SELECT MAX(id)) ORDER BY id DESC LIMIT 1

Без ORDER BY id DESC он показывал первый товар

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыBropush - Твой бро в монетизации через Push-уведомления
28 bropush 11187 Вчера, 12:52
автор: bropush
Открытая тема (нет новых ответов) Через какой браузер и как можно найти в кэшэ браузера видео
10 Room 1925 23.3.2024, 7:41
автор: Room
Открытая тема (нет новых ответов) Интеграция спортивных данных API. Коэффициенты БК, Live результаты
14 yaroslav89 6624 13.3.2024, 23:16
автор: spoyer_ru
Горячая тема (нет новых ответов) Ручной обмен, ввод/вывод электронных валют | ЮMoney, WMZ, Крипта, Приват, Монобанк | Низкие комиссии, минимальные суммы сделок
быстро, удобно, по доступному курсу
200 Sostavitel 97658 11.2.2024, 21:07
автор: Wolfhound
Открытая тема (нет новых ответов) ГОРЯЧИЕ FOREX|CRYPTO ЛИДЫ. БАЗЫ ДАННЫХ
[Чарджбек|Рекавери|Возврат]
9 Leado 3801 9.2.2024, 16:04
автор: baza0013


 



RSS Текстовая версия Сейчас: 28.3.2024, 13:57
Дизайн