Тема: данные заносятся в БД не по порядку

доброго времени вам!
ответте пожалуйста на такие вопросы:
1.у меня данные заносятся в БД не по порядку. вернее только два раза было такое, что последние заносимые данные заносились в таблицу на первую строку, и все последующие заносились под ними, отодвигая вниз, те данные которые занеслись в БД раньше. такое было в двух таблицах, в столбцах типа VARCHAR.
я поискал, и вроде нашол овет, но хочу кое что уточнить (так как намерено не могу занеси данные пе по порядку, и тем самым проверить правдивость найденного мной ответа)
вот что нашол:
[Если при создании таблицы не был задан атрибут BINARY для столбцов, то величины в столбцах типа CHAR и VARCHAR сортируются и сравниваются без учета регистра. При задании атрибута BINARY величины в столбце сортируются и сравниваются с учетом регистра в соответствии с порядком таблицы ASCII на том компьютере, где работает сервер MySQL.]

это из-за этого данные заносятся не по порядку?
если нет, то как вы думаете из-за чего?

2.где-то тут, на форуме прочитал:
[BINARY - атрибут, применимый только к строковым типам (CHAR и VARCHAR)]
это озночает что к таким типам как: TEXT DATE, этот атрибут применять не нужно? а если мне надо вывести в цикле информацию из БД у которой атрибут TEXT (TEXT не одно поле в таблице, есть и VARCHAR). и чтобы вся информация выводилась по томуже порядку, по которому она занасилась в базу, как мне это можно сделать? (думаю всё будет выводиться правельно, но всёже хочу услышать мнение знающих людей)

2

Re: данные заносятся в БД не по порядку

элекроник
По порядку данные будут писаться только на чистую таблицу, после того, как что-то было отредактировано, что-то удалено, данные будут писаться на место удаленных и таким образом компоноваться; таков принцип работы MySQL. Чтобы данные писались последовательно существует первичный ключ с параметром автоувеличения, который точно идентифицирует строку.

Re: данные заносятся в БД не по порядку

спасибо за ответ, но не совсем понятно что делать.
дело в том что если бы данные заносились и были только в БД не попорядку, я бы это пережил, но проблема в том что они выводятся на странице сайта из-за этого не попорядку (также как и в БД)
например я занес три новости, дата которых такая:
11.03.2010
15.03.2010
20.03.2010, и они выводятся правельно, по порядку. потом я заношу очередную новость и вдруг что-то происходит, и она закидывается в БД на первую сточку, и также выводятся, получается так:
25.03.2010
(а все последующие уже добовляются сюда, между ними)
11.03.2010
15.03.2010
20.03.2010.
буду вам очень благодарен если вы мне точнее подскажите, как избежать такого беспорядка
(пс. пока ждал ваш ответ поставил у всех VARCHAR в таблице атрибут BINARY. данные в таблице не выстроились по порядку, но выводится стали правельно в конце. возможно если создать таблицу заново, и указать этот атрибут у всех VARCHAR то будет все правельно выводиться.)
хотя если вы говорите, про первичный ключ - значит так будет правельние, но я не совнем понимаю: у каких VARCHAR его ставить, у одного, или всех? или не у полей с типом VARCHAR? я первичный ключ указываю полю с названием id, тип у него ставлю INT, вы это имеете ввиду?
где ставить первичный ключ, чтобы данные, на странице сайта, выводились по порядку, даже если я их редактирую или удаляю?

4

Re: данные заносятся в БД не по порядку

элекроник
Необходимо в запрос выбирающий данные из таблицы добавить оператор сортировки. Примерно так:

SELECT * FROM `table`
ORDER BY `time`;

5 (изменено: элекроник, 2010-06-09 14:39:15)

Re: данные заносятся в БД не по порядку

написал так:
mysql_query("SELECT * FROM krolik WHERE id='$id' ORDER BY id",$db);
незнаю, правельно или нет, но вроде всё работает как надо
огромное вам спасибо за помощь!
и всего вам хорошего!

6

Re: данные заносятся в БД не по порядку

элекроник
Если сортировка необходима по полю id, то разумеется, все правильно.

Re: данные заносятся в БД не по порядку

да, по id
а там где по дате, соответственно написал date
ещё раз спасибо!