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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Переиндексация 
:(
    Опции темы
R.M.
Дата 30.9.2005, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Подскажите, как сделать переиндексацию id после удаления строки?


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

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


прафесар™
****


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

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



Куксикус ты о чем?


--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
$дмитрий
Дата 30.9.2005, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Куксикус
1. записать ИД удаленной строки
2. циклом переименовать, то что лежит "ниже" удаленной строки.
PM MAIL   Вверх
-=Ustas=-
Дата 30.9.2005, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


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

Репутация: 17
Всего: 69



Я так понимаю, что ты не хочешь чтобы у тебя поле id содержало дырки, типа 1,2,4,8 ?! Если это так, то тебе лучше завести дополнительное поле, например nid - целочисленного типа, и в нем проставлять нумерацию по-порядку. А после удаления делать следующее:
Код

<?php

$sql = "SELECT
            id
        FROM
            your_table
        ORDER BY
            id
        ASC";
$res    = mysql_query($sql);
$allRec = mysql_num_rows($res);

$i = 0;
while ($obj = mysql_fetch_object($res)) {
    $idArray[$i] = $obj->id;
    $i++;
}

for ($i = 0; $i < $allRec; $i++) {
    $sql = "UPDATE
                your_table
            SET
                nid = '".$i."'
            WHERE
                id = '".$idArray[$i]."'";
    $res = mysql_query($sql);
    if (!$res) {
        echo "Ошибка обновления записи с ID -> ".$idArray[$i];
        exit();
    }
}

?>



--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
R.M.
Дата 30.9.2005, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



-=Ustas=-

Спасибо


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

Nokia LifeStyle - Всё для смартфонов Nokia 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




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


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

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