Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Последовательность при записи в БД, как сохранить порядок эл-тов массива 
:(
    Опции темы
Alex_B
Дата 18.6.2007, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Есть массив A.
Каждый элемента этого массива я по порядку записываю в таблицу MySQL.

Затем мне необходимо сформировать массив B из записей в таблице MySQL.
Массив B должен быть идентичен массиву A – важна последовательность элементов.

Сейчас последовательность элементов в массива B ни как не контролируется.

Как более практично сделать такое?
(можно сделать еще одну колонку в таблице и туда записывать номер элемента в массиве A, но наверняка есть способ лучше)

Спасибо.
PM MAIL   Вверх
vasac
Дата 18.6.2007, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

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



Поставить автоинкремент в таблице. При выборке упорядочивать по нему.
PM WWW   Вверх
Alex_B
Дата 18.6.2007, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(vasac @ 18.6.2007,  21:09)
Поставить автоинкремент в таблице. При выборке упорядочивать по нему.

Автоинкремент стоит.

Т.е. сбой происходит не при записи а при считывании?
_________________
Сейчас пытаюсь повторить ситуацию при которой произошел сбой последовательности элементов  - и никак не получается.

Но раза три уже было - не могу понять от чего это зависит

Это сообщение отредактировал(а) Alex_B - 18.6.2007, 21:23
PM MAIL   Вверх
skyboy
Дата 19.6.2007, 00:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


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

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



в запросе "ORDER BY" есть по этому автоинкременту? или "рассчитываем на СУБД"?
PM MAIL   Вверх
sTa1kEr
Дата 19.6.2007, 01:57 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

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



Цитата(skyboy @  19.6.2007,  00:26 Найти цитируемый пост)
в запросе "ORDER BY" есть по этому автоинкременту? или "рассчитываем на СУБД"? 

Если тип таблицы InnoDB и столбец с  автоинкрементом является первичным ключом, то при выборке даже без ORDER BY сортировка все равно будет по этому Primary Key. 
PM MAIL   Вверх
Alex_B
Дата 19.6.2007, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(skyboy @ 19.6.2007,  00:26)
в запросе "ORDER BY" есть по этому автоинкременту? или "рассчитываем на СУБД"?

skyboy, запрос выглядит вот так:
Код

SELECT * FROM #__glinepoints WHERE lineid='".$line->id."'


Подскажите пожалуста как добавить "ORDER BY".

Я правильно понял, что если я последовательно записываю элементы массива в таблицу с автоинкрементом, то этот автоинкремнт для каждой следующей записи будет больше чем для предыдущей? Т.е. при добавлении записей в таблицу последовательность нарушится не может?
PM MAIL   Вверх
vasac
Дата 19.6.2007, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

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



http://phpfaq.ru/mysql
тут и про последовательность в таблице и пример с ORDER BY
PM WWW   Вверх
Alex_B
Дата 19.6.2007, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



vasac, спасибо.

Вот так сделал:
Код

SELECT * FROM #__glinepoints WHERE (lineid='".$line->id."') ORDER BY id ASC

PM MAIL   Вверх
skyboy
Дата 19.6.2007, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


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

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



Цитата(sTa1kEr @  19.6.2007,  00:57 Найти цитируемый пост)
Если тип таблицы InnoDB

только в случае, когда необходимости во внешних ключах нет(реализовано на уровне логики приложения), а транзакции - не критично, в отличии от скорости, то используют, почему-то, MyISAM  smile 
Но все равно - спасибо за инфо. не знал, не знал smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




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


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

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