вопрос по порядку записей в таблицу

yok

Новичок
Здравствуйте ,
в таблице делается запись с полями id and company
При чем id формируется из берется максимальное и +1. не ауто_инкрементал.
Выводится таблица в вэб все нормально, но
потом допустим удаляется запись допустим по номером 4, а записей 10, делаю еще запись и эта 11 запись заносится в строку 4. но под номером 11. Получается в id идет 1, 2, 3, потом 11, потом 5, 6 и до конца.
Некрасиво.

Как сделать чтобы номера были по порядку в выводе.

Мысли:
может надо AUTO_INCREMENT, но тогда возможно на месте 4 останется пустая строка, или как то таблицу обрабатывать надо.
Как такой вопрос решается?
 

Gremboloid

инженера Гр...
заносится в строку 4.
никуда не заносится, а просто добавляется строка с цифрой 11 в поле id
под ID подразумевается уникальный идентификатор записи (чтобы не спутать ее с другими)
Нужна порядковая нумерация записей, пронумеруй их сам (ищи "как пронумеровать строки")
 

prolis

Новичок
Id - всегда автоинкремент
Номер записи в таблице при отображении - или на в запросе или за ним (php/JS)
 

yok

Новичок
Никак не решается. "Дыры" из таблиц удалять не нужно.
Вот о чем я дырка там, id это я условно назвал, пусть будет number не важно.
И вот в таблице 10 записей, 4ю я удаляю, осталось дырка, я делаю еще запись и даю ей number=11 и записываю в таблицу и она пишется в пустую строку, что была под 4й записью.
$sql="SELECT * FROM `kontra`";
$result=mysql_query($sql);
echo "<table border=1 cellpadding=3 bgcolor=white><tr><td>id</td><td>Предприятие</td><td>Город</td><td>Должность руководителя</td></tr>";
while($res=mysql_fetch_row($result))
{
echo "<tr><td>".$res[0]."</td><td>&nbsp;<a href=\"?id=".$res[0]."\">".$res[1]."</a></td><td>&nbsp;".$res[2]."</td><td>&nbsp;".$res[3]."</tr>";
и выводит
1
2
3
11
5
6
.....
 

yok

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

Dovg

Продвинутый новичок
У таблицы нет "низа" и "верха". Если тебе нужен определенный порядок записей при выводе, сортируй их по какому-нибудь полю.
 

yok

Новичок
почему нет низа и верха,
mysql> select * from kontra;
ведь выводит в порядке , ну условно может. Но выводит то с начала записи. А может ты и прав. Кто его знает как там в самой таблице. Мнение сформировано на основании вывода данных.

Но вроде помню какая то оптимизация таблицы ведь проводится , Ну индексация это ясно, вот и надеялся что может что есть.
Эсли уж выхода нет, прийдется сортировать.
 

yok

Новичок
Ой блин и че я мудрил
$sql="SELECT * FROM `kontra` ORDER by `id`";

Всем спасибо.
 
Сверху