[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Здравствуйте, помогите вставить строку внутрь табл
GET
Здравствуйте, помогите вставить строку внутрь таблицы (раздвинуть).

У меня есть таблица:

ID Tovar Kategoriya

1 Творог Молочные
2 Сыр Молочные
3 Йогурт Молочные
4 Колбаса Мясные
5 Сало Мясные

На экране таблица выводится столбиком по категориям:

Мясные
Сало
Сарделки
Колбаса
Молочные
Творого
Сыр

Вывод построен таким образом, что не существует сортировки по столбцу категорий, категории расположены изначально в том порядке в котором мне нужно

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

Чтоб получилось вот так

1 Творог Молочные
2 Сыр Молочные
3 Йогурт Молочные
4 СЫВОРОТКА Молочные
5 Колбаса Мясные
6 Сало Мясные

Кто - нибудь сталкивался с этим? Не могу понять как это реализовать.

П.С. Структура может казаться не логичной, но мне она удобна.




Спустя 12 минут, 10 секунд (30.06.2010 - 09:57) maxims написал(а):
а данных многа в таблице? если нет, то можно перезаписывать всю таблицу, но это не самое лучшее решения, дополнительное поле ord всё бы решила.....

Спустя 3 минуты, 23 секунды (30.06.2010 - 10:01) ABC написал(а):
гм можно даже вот так

1------Творог ------ Молочные
2------Сыр ------ Молочные
3------Йогурт ------ Молочные
700------СЫВОРОТКА Молочные
5------Колбаса Мясные
6------Сало Мясные

главное чтоб строчка встала в нужное место, а ее номер не суть важен...

а что за поле ord?

Спустя 2 минуты, 45 секунд (30.06.2010 - 10:04) ABC написал(а):
Данных...ну тысячи 2


Спустя 45 секунд (30.06.2010 - 10:04) tomash написал(а):
Ну или сортировать в массиве, при обработке результата запроса!


Либо добавить поле для сортировки! Тогда при вставке данных Вам придется обновлять таблицу!
$order = 3;
mysql_query("UPDATE table1 SET my_order = my_order +1 WHERE my_order => ".$order);
mysql_query("INSERT INTO table1 (name, my_order) VALUE ('сыворотка', ".$order.")");

Спустя 22 минуты, 17 секунд (30.06.2010 - 10:27) maxims написал(а):
про ord пояснил уважаемый tomash wink.gif
ИМХО это самый лучший способ.....

Спустя 22 минуты, 28 секунд (30.06.2010 - 10:49) ABC написал(а):
Дело в том, что я не могу сортировать, сортировка приведет к тому что все перемешается по алфавиту...

т.е. Мебель станет рядом с Молочным или Мясным...а на экране будет стоять "Продукты:"

А как то можно при помощи вот этого поля сортировочного ORDER... переиндексировать чтоли таблицу типа

ID Tovar Kategoriya MY_ORDER

1 сыр Молочные 3
3 йогурт Молочные 3
17 сыворотка Молочные 3
256 кефир Молочные 3

4 колбаса Мясные 55

т.е. чтоб после добавления записей типа 17 или 256 они вклинились?


Tomash, в предложенном тобой скрипте ORDER....равняется 3? как в этой таблице что я нарисовал?

Правильно ли я понимаю эту твою строчку?

mysql_query("UPDATE table1 SET my_order = my_order +1 WHERE my_order => ".$order);


Обновить таблицу table1 в столбике ORDER и начиная с 3
$order = 3;
записываем туда значения увеличивая на один?

Вторая строчка:
mysql_query("INSERT INTO table1 (name, my_order) VALUE ('сыворотка', ".$order.")");


Вставляем в таблицу значения сыворотка и 3 в TOVAR, my_order

а в какое место это строчка встанет?...нужно чтоб она же была с категорией мололочные?

Спустя 14 минут, 1 секунда (30.06.2010 - 11:03) tomash написал(а):
Так у Вас же есть поле Kategoriya. По нему и сортируйте.
Совет, разделите таблицу на две категории и товары

Спустя 6 минут, 55 секунд (30.06.2010 - 11:10) waldicom написал(а):
Че-то я не пойму, с каких пор можно изменить физический порядок данных внутри MySQL? Или немного по-другому: кто будет полагаться на то, что данные будут выводиться так, как были введены?

Спустя 24 минуты, 35 секунд (30.06.2010 - 11:35) ABC написал(а):
user posted image

посмотрите вот здесь все целеком...

Спустя 2 минуты, 9 секунд (30.06.2010 - 11:37) ABC написал(а):
про оптимизацию запроса к БД я знаю...в смысле не использовать do-while и mysql_fetch_array просто некогда пока испралять ...

Спустя 32 минуты, 49 секунд (30.06.2010 - 12:10) tomash написал(а):
A.B.C.
полный бизнес! это вывод из БД, а где вставка???

Спустя 15 минут, 29 секунд (30.06.2010 - 12:25) ABC написал(а):
да вставку я и не могу сделать!!!!!....если я вставку строки сделаю...скажем в разделе Недвижимость добавлю 6 комнатную квартиру

user posted image

...то она не отобращзхится вместе с другими квартирами...а отобразится последней..

мне ее надо вставить после 5-комнатной, но как???...

на картинке я поля Квартиры перепутал с 6 - комнатной

Спустя 4 минуты, 42 секунды (30.06.2010 - 12:30) tomash написал(а):
A.B.C.
Ну так!
$a = mysql_query("SELECT * FROM kategoriya ORDER BY kategorii")

Спустя 7 минут, 31 секунда (30.06.2010 - 12:37) ABC написал(а):
тогда на экране будет хаус....в разделе недвижимость самом верхнем будут стоять автомобили, а квартиры будут стять вместе с музыкой и литературой...

tomash, я хочу попробывать как ты сначала предлагал и проставить дополнительное поле ODER...чтоб сортировать не по алфавиту

ORDER BY kategorii
, а по номеру категории...

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

Спустя 32 минуты, 13 секунд (30.06.2010 - 13:10) tomash написал(а):
костыль -

function get_kat ($sub_kat)
{
$kat = array ('квартиры' => 1,
'дома' => 1,
'дачи' => 1,
'авто' => 2,
'иностранные авто' => 2,
'продукты питания' => 3)
return $kat[$sub_kat];
}
]

но это кошмар))) все нужно с нуля делать. Сначала спректировать БД, потом продумать алгоритмы, разделить представление(html) и логику(php), тогда будет гораздо легче и разрабатывать и поддерживать.
А то сейчас все в кучу - кровь, гавно, песок и сахар.

Спустя 4 минуты, 56 секунд (30.06.2010 - 13:14) ABC написал(а):
tomash, большое тебе спасибо...надо было сразу добавить этот столбец как ты предлагал в начале и не мучиться по цифрам оно конечно всяко отсортируется и добавлять их легче будет...видимо из-за жары еще глючу у нас +50...

это мой первый проект...

поэтому столько ошибок, кроме инета в живую спросить некого сейчас я понимаю, что надо было вообще на бумаге все разработать сначала.

Спустя 5 минут (30.06.2010 - 13:19) tomash написал(а):
A.B.C.
Просто все смешалось, из-за неправильной структуры БД и приложения, вылазят проблемы, которые можно решить еще более нагромождая приложения. Вот я о чем. А через пол-года вы ноги поломаете разбираясь в собственном приложении.
Но не ошибается тот, кто ничего не делает. Удачи

Спустя 1 минута, 44 секунды (30.06.2010 - 13:21) ABC написал(а):
Спасибо.


_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Быстрый ответ:

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