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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с ID указателями, удалением и добавлением 
V
    Опции темы
InfMag
Дата 12.2.2006, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


…
***


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

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



Я вот только заметил, если удалить значение в базе и потом добавить новое, то все равно ID указатель не сдвигается на ряд меньше. Проблема в том, что я обнаружил такую проблему. Я удалял записи запросами, но после добавления новой записи она добавлялась не в конец, а где-то раньше, походу она встала на место удаленной записи с ее ID...
Что делать? Это недопустимо!
PM   Вверх
Kesh
Дата 12.2.2006, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

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



InfMag, а у тебя autoincrement есть ?


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
InfMag
Дата 12.2.2006, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


…
***


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

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



Цитата(Kesh @ 13.2.2006, 00:32)
InfMag, а у тебя autoincrement есть ?

Да
PM   Вверх
Kesh
Дата 12.2.2006, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

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



InfMag, тогда описывай подробнее и желательно еще dump базы...


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
InfMag
Дата 12.2.2006, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


…
***


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

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



У меня есть база из трех полей id login password, дык я позабивал рядов в ней, потом некоторые удалял, вышло
id login password
1 admin xxx
5 suxx xxx
10 sss xxx
Вобщем после добавления вот что получилось:
1 admin xxx
11 xsx xxx
5 suxx xxx
10 sss xxx
И как енто понимать?
PM   Вверх
Kefir
Дата 12.2.2006, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

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



ну и нормально - я так понял что последний ИД был равен 10. Ты добавил запись и с авто_инкрементом появилась запись с ИД = 11. Ничего странного не вижу...
PM MAIL WWW Skype   Вверх
InfMag
Дата 12.2.2006, 23:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


…
***


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

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



Цитата(Kefir @ 13.2.2006, 02:29)
ну и нормально - я так понял что последний ИД был равен 10. Ты добавил запись и с авто_инкрементом появилась запись с ИД = 11. Ничего странного не вижу...

Дык я все по строчкам расписал, ты видел где именно она появилась? Она на втором уровне оказалась какого-то хрена, а не на последнем как должна была быть smile
PM   Вверх
R.M.
Дата 13.2.2006, 08:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Анархист
****


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

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



InfMag,
Какая разница как это выглядит в БД? Сделай такой вывод
Код

$sel = mysql_query("SELECT * FROM table ORDER BY id ASC");

смотри и радуйся что всё на своих местах.


--------------------
Помнишь как бодрили дискотеки прошлого века? Теперь стул, компьютер и нету человека.

Nokia LifeStyle - Всё для смартфонов Nokia 
PM MAIL WWW ICQ   Вверх
Kefir
Дата 13.2.2006, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

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



InfMag, id по сути своей не является номером строки в таблице. id - это просто поле, в котором хранится уникальный номер записи. Как показал Куксикус по нему можно сортировать в хронологическом порядке - это именно то чего ты хочешь, однако это частный случай запроса. Запросов много и невозможна ситуация, когда все запросы будут выдавать результсеты с одинаковой последовательностью id.
PM MAIL WWW Skype   Вверх
InfMag
Дата 13.2.2006, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


…
***


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

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



Огромное спасибо! Просто и без гемороя smile
+1
Добавлено @ 10:28
Kefir, да я понимаю, понимаю что id это всеголиш значение, на него присвоен ключевой указатель. Я думал просто, что каждая запись в майсикуле выдается в конец...
PM   Вверх
InfMag
Дата 13.2.2006, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


…
***


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

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



Так, теперь иная проблема.
Вот у меня есть список рядов в базе, после раскопок по ней ID примерно вот такие:
1
3
6
11
43
56
У меня стоит задача чтобы строчку по ID 11 сдвинуть выше, тоесть на место ряда с ID 6
Как это сделать?
Я канешь могу просто обменом значений енто зделать, используя текущий ID и отнимая от него единицу, но ID то далеко не близкие... :/
PM   Вверх
Kesh
Дата 13.2.2006, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

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



InfMag, для сортировки задай дополнительное поле и нумеруй его...


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
InfMag
Дата 13.2.2006, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


…
***


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

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



Kesh, тоесть каждый раз перебирать базу и пронумеровывать и не ставить аутоинцрементов?
PM   Вверх
Kefir
Дата 13.2.2006, 23:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

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



InfMag, немного непонятно - опиши что ты хочешь в итоге получить? куда ИД=6 сам деваться должен?
PM MAIL WWW Skype   Вверх
InfMag
Дата 13.2.2006, 23:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


…
***


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

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



Kesh, все, сделал! smile
Написал функцию для автонумеровки:
Код

function newsnums()
{
    $res = mysql_query("SELECT * FROM `news` ORDER BY `id` ASC");
    $i=0;
    while ($news=mysql_fetch_array($res))
    {
        $i++;
        @mysql_query("UPDATE `news` SET `n` = $i WHERE `id` = ".$news['id']." LIMIT 1");
    }
}

+1 smile

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


 




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


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

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