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



 

Здравствуйте, гость ( Вход | Регистрация )

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


Завсегдатай
*****


Группа: Active User
Сообщений: 750
Регистрация: 7.9.2011
Из: москва
Поблагодарили: 89 раз
Репутация:   7  


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

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


Бывалый
****

Группа: User
Сообщений: 393
Регистрация: 14.1.2011
Поблагодарили: 123 раза
Репутация:   31  


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

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


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


Straight arms
*******

Группа: Active User
Сообщений: 2760
Регистрация: 21.4.2009
Из: Мытищи, МО, РФ
Поблагодарили: 1111 раз
Репутация:   163  


Не знаю почему , но в базе иногда строка 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


Завсегдатай
*****


Группа: Active User
Сообщений: 750
Регистрация: 7.9.2011
Из: москва
Поблагодарили: 89 раз
Репутация:   7  


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


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

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

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


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


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


Новичок
*


Группа: User
Сообщений: 31
Регистрация: 15.6.2012
Поблагодарили: 14 раз
Репутация:   4  


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


Завсегдатай
*****


Группа: Active User
Сообщений: 750
Регистрация: 7.9.2011
Из: москва
Поблагодарили: 89 раз
Репутация:   7  


(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


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Услуги продвижения сайтов, SEO специалист (эффективный вывод в Топ)
Качественно и гибкие цены
47 mvchansas 7435 Сегодня, 11:06
автор: mvchansas
Открытая тема (нет новых ответов) Вывод на Сбербанк 6% | Работаю быстро
WMR/Яндекс > Сбербанк
14 rudnizki 3874 Вчера, 18:16
автор: Zoya83
Горячая тема (нет новых ответов) Обмен WebMoney - Яндекс - QIWI - Bitcoin BTC и другая крипта. Вывод/ввод Приват24 UAH
142 himin 48339 Вчера, 15:56
автор: himin
Горячая тема (нет новых ответов) ВНИМАНИЕ: Обмен/Ввод/Вывод - Paypal/WM/PM/WIRE/ePm/Paxum/BTC/Epese/Capitali/Visa/MC/eCoin/EXMO/нал
192 JenkinChange 82849 22.5.2018, 23:49
автор: JenkinChange
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыПродам базу прочеканных через чектраст форумов
5 Barselona 1266 22.5.2018, 18:55
автор: Barselona


 



RSS Текстовая версия Сейчас: 25.5.2018, 11:19
Дизайн