[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Перерасчёт уникального id-а в таблице
AndrewSpider
Как можно переназначить id в таблице? Ведь если удалть запись из середины, то они сами по себе не пересчитываются. А id служит порядковым номером сообщения (мгновенный чат), так что он должен иди строго по порядку. У мну тока один вариант решения: удалить стобик с id и создать заново. Пока что это работает более менее нормально, но когда сообщений будет много, то..

if (isset($_GET['reload'])) {
mysql_query("ALTER TABLE POSTS DROP COLUMN ID") or die("Ошибка удаления столбца из базы данных: ".mysql_error());
mysql_query("ALTER TABLE POSTS ADD COLUMN ID INT AUTO_INCREMENT PRIMARY KEY FIRST;") or die("Ошибка добавления столбца в базу данных: ".mysql_error());
mysql_close();header("Location: forum.php");exit;
}




Спустя 32 минуты, 13 секунд (20.02.2011 - 12:23) T1grOK написал(а):
А зачем пересчитывать??? Ведь если вы запись удалите с середины от этого порядок не изменится, просто у вас не будет некоторых значений id.

Спустя 2 часа, 14 минут, 54 секунды (20.02.2011 - 14:38) sergeiss написал(а):
AndrewSpider - я бы рекомендовал найти и почитать что-нибудь о том, как правильно работать с БД. Чтобы таких мысле даже не было smile.gif Мало того, что ты ерундой занимаешься, так еще в процессе совершенно не по делу очень сильно грузишь MySQL.T1grOK правильно сказал, что отсутствие некоторых айди - это не проблема. Если ты считаешь, что это все-таки проблема, то перечитай с самого начала мой ответ.

Спустя 1 день, 3 часа, 48 минут, 26 секунд (21.02.2011 - 18:27) AndrewSpider написал(а):
Как я уже писал, id служит порядковым номером сообещния, и он не может идти типо как 1,7,8,14,19 и т.д.
Но раз в mysql нельзя создать нормальный первичный ключ, то я нашёл другой выход

Спустя 35 минут, 51 секунда (21.02.2011 - 19:02) T1grOK написал(а):
Причем тут номер сообещения??? Сортируете по id записи(порядок следования не изменяется), а при выборке, если нужно проставляете номер сообщения, прописав
в скрипте переменную счетчик, которая будет меняться в выборке из базы!

Спустя 14 часов, 28 минут, 43 секунды (22.02.2011 - 09:31) linker написал(а):
AndrewSpider
Ну-ну и какой другой выход? И каким боком тут затесался "первичный ключ"?

Спустя 2 часа, 12 минут, 8 секунд (22.02.2011 - 11:43) AndrewSpider написал(а):
Короче, я сделал чат с мгновенными сообщениями, то есть сообщения подгружаются каждые несколько секунд. Самый оптимальный вариант это чтобы номер сообщения сооствествовал id-у. Но раз так нельзя сделать, то придётся заводить лишние переменные с последним полученным номером сообщения в js и передавать каждый раз их в get запросе, что не есть кул

Спустя 16 минут, 11 секунд (22.02.2011 - 11:59) Renden написал(а):
AndrewSpider
А как у тя сообщения выводятся в цикле?
если да то что мешает сделать так чтоб было по порядку:

$id = 0;
$sql = mysq_query(ORDER BY id);
while ($row=mysql_fetch_assoc($sql)) {
echo $id . $row['name_message'] . $row['content_mesage'];
$id++;
}

Спустя 13 минут, 50 секунд (22.02.2011 - 12:13) Snus написал(а):
Цитата (Renden @ 22.02.2011 - 08:59)
А как у тя сообщения выводятся в цикле?
если да то что мешает сделать так чтоб было по порядку:

Мне это диалог напомнило:
- Вас как зовут?
- Да
- ... (немая сцена)
biggrin.gif

Спустя 20 минут, 47 секунд (22.02.2011 - 12:34) AndrewSpider написал(а):
Тема закрыта короче=) Но в той же базе данных MS Access id-ы пересчтитываются, там поудобней будет=)

Спустя 55 секунд (22.02.2011 - 12:35) linker написал(а):
AndrewSpider
Какая проблема сортировать сообщения по их уникальным id и выводить по порядку? В чем сложность? Зачем единый непрерывный порядок? Неужели сложно привязываться к id сообщения, а не к его порядковому номеру?

Спустя 2 минуты, 35 секунд (22.02.2011 - 12:38) AndrewSpider написал(а):
Цитата (Renden @ 22.02.2011 - 08:59)
AndrewSpider
А как у тя сообщения выводятся в цикле?
если да то что мешает сделать так чтоб было по порядку:

$id = 0;
$sql = mysq_query(ORDER BY id);
while ($row=mysql_fetch_assoc($sql)) {
echo $id . $row['name_message'] . $row['content_mesage'];
$id++;
}

При первом заходе конечно легко можно вывести таким способом, но у меня они ещё подгружаются через ajax и надо чтобы нумерация продолжилась, но я уже допёр как сделать;D Всем спс

Спустя 9 минут, 50 секунд (22.02.2011 - 12:47) T1grOK написал(а):
Хранить где нибудь текущее значение id или чисто через JS менять.

Спустя 1 час, 34 минуты, 39 секунд (22.02.2011 - 14:22) linker написал(а):
Задайся вопросом, зачем тебе нужна нумерация сообщений по порядку без разрывов?

Спустя 4 часа, 32 минуты, 5 секунд (22.02.2011 - 18:54) AndrewSpider написал(а):
Цитата (linker @ 22.02.2011 - 11:22)
Задайся вопросом, зачем тебе нужна нумерация сообщений по порядку без разрывов?

А почему бы и нет?;DD

Спустя 1 день, 15 часов, 28 минут, 9 секунд (24.02.2011 - 10:22) linker написал(а):
AndrewSpider
Добро, второй вопрос, ты хромой? Зачем тебе костыли? Костыли нужны только кривому и говно коду.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.