|
|
|
| Добрый всем день.
Есть каталог товара, клиент хочет чтобы у каждой товарной позиции, была своя позиция (level).
Вот добавление я то сделал, при добавлении товара
$result5 = $db->sql_query("SELECT level FROM shop WHERE cid='$cid' ORDER BY level DESC LIMIT 1");
list($level) = $db->sql_fetchrow($result5);
$level = $level+1;
|
это все работает, отлично.
И тут вопрос как изменить позицию товара? ее положение если скажем администратор у определеного товара который был 55 ставит чтобы он был 10, как все это отсортировать сменить позиции товарам?
все позиции товара имеют значение, в общем списке
<input name="level[]" type="text" value="">
и вот как отсортировать все, когда сменится позиции или позиции у определенных товарах | |
|
|
|
|
|
|
|
для: dirol
(24.05.2013 в 11:18)
| | Вы в разделе MySQL показали код PHP, SQL и HTML.
При чем о структуре данных - ни слова.
И ни слова о том, как изменяется позиция.
И не понятно собственно в чем вопрос: как изменить данные или как пересортировать их на HTML-странице?
Если первое, то покажите результат запроса и разъясните, что значит
все позиции товара имеют значение, в общем списке
<input name="level[]" type="text" value="">
|
Если второе, то вам в раздел HTML+CSS+JavaScript | |
|
|
|
|
|
|
|
для: dirol
(24.05.2013 в 11:18)
| | Обновлять надо - сперва всем товарам уровнем более 9 установить уровень равный текущему плюс 1, после чего товару с уровнем равным 56 установить уровень 10. Будет прореха со значением 56, можно и устранить сместив вверх (уровень минус - 1 для уровней больше 56), а можно и плюнуть - сортировка то будет требуемая. Правда может набраться дыр много при рокировках.
Если сортировка, это сперва в полях формы определить ее, то это можно сделать как на клиенте (JS), так и на сервере, если форма предполагает ввод значения сортировки, или перетаскиваются поля в форме. | |
|
|
|
|
|
|
|
для: confirm
(24.05.2013 в 12:24)
| | > если форма предполагает ввод значения сортировки
(а похоже что так оно и есть)
.... то еще нужно проверить, что там навводили.
Чел может по ошибке и одинаковых значений наставить. Поэтому я и просил интерфейс сортировки описать. И поэтому же лучше отказаться от "все позиции товара имеют значение, в общем списке <input name="level[]" type="text" value="">" и прибегнуть к сортировке перетаскиванием либо стрелками смещения строки вверх/вниз, так, чтобы изменялось за одно обращение по одному значению.
Тогда, если например изменяется позиция 56 на 10, то можно использовать такой запрос:
UPDATE shop
SET level = if( level=56, 10, level+1 )
WHERE level BETWEEN 10 AND 56
| при перемещении вверх, либо если изменяется 10 на 56 (перемещение вниз), то:
UPDATE shop
SET level = if( level=10, 56, level-1 )
WHERE level BETWEEN 10 AND 56
|
| |
|
|
|
|
|
|
|
для: Sfinks
(24.05.2013 в 13:27)
| | Ну это уже не мои проблемы, стрелками, тасканием... )
Че гадать, не известно где, и самое главное не известно сколько. Если перемещается одна позиция, то просто, если несколько и по ранжиру могут быть вверх и вниз, то все сложнее будет.
Так что дождитесь пока объяснят, а потом... ) | |
|
|
|