Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Обменять две записи id и не забыть про детей.

Сообщения:  [1-10]   [11-20] 

 
 автор: DJ Paltus   (04.08.2009 в 21:24)   письмо автору
 
   для: serjinio   (04.08.2009 в 16:16)
 

Сегодня пытался применить, мозгов не хватило. Завтра буду дожевывать. Спасибо! ))

  Ответить  
 
 автор: serjinio   (04.08.2009 в 16:16)   письмо автору
 
   для: DJ Paltus   (04.08.2009 в 10:10)
 

$p это номер позиции которую надо переместить выше(поменять с верхней местами)

  Ответить  
 
 автор: DJ Paltus   (04.08.2009 в 11:50)   письмо автору
 
   для: Trianon   (03.08.2009 в 14:08)
 

Наглядно. Понятно. Убедительно. Благодарю. )

  Ответить  
 
 автор: DJ Paltus   (04.08.2009 в 10:10)   письмо автору
 
   для: serjinio   (03.08.2009 в 07:17)
 

Я дико извиняюсь, но что находится в переменной $p и откуда берется?

  Ответить  
 
 автор: Trianon   (03.08.2009 в 14:10)   письмо автору
 
   для: DJ Paltus   (03.08.2009 в 13:30)
 

>>PS. Сократите, плиз, текст в скрипте начального поста, так чтоб не нужно было скроллить окно.
>После первого же ответа пост перестает быть редактируемым...
Вот вам ссылка

  Ответить  
 
 автор: Trianon   (03.08.2009 в 14:08)   письмо автору
 
   для: DJ Paltus   (03.08.2009 в 13:35)
 

Теперь пересчитайте количество записей, в которых хоть что-то поменялось.
Сделайте вывод.
Serjinio прав абсолютно. Вам нужно применять отдельное поле для сортировки.

  Ответить  
 
 автор: DJ Paltus   (03.08.2009 в 13:35)   письмо автору
 
   для: Trianon   (03.08.2009 в 10:02)
 

Должно получиться вот это:

id pid   name
-----------------
 1 0 Собака
21 1    Щенок1
22 1    Щенок2

 2 0 Кошка
11 2   Котенок1
12 2  Котенок2

...что логично. А почему Вы спрашиваете?

Я меняю ид родителя у дочерних записей примерно таким же способом, какой тут привел, только обмениваю их не через 0, а через невероятно большое 999999999. Сейчас вникаю в то, что в ответ предложил почтенный Serjinio.

  Ответить  
 
 автор: DJ Paltus   (03.08.2009 в 13:30)   письмо автору
 
   для: Trianon   (03.08.2009 в 11:24)
 

>PS. Сократите, плиз, текст в скрипте начального поста, так чтоб не нужно было скроллить окно.
После первого же ответа пост перестает быть редактируемым...

  Ответить  
 
 автор: serjinio   (03.08.2009 в 12:06)   письмо автору
 
   для: DJ Paltus   (03.08.2009 в 12:01)
 

При удалении никаких дыр не будет
/* Пересчитываем новую позицию элементов */
mysql_query(" 
UPDATE `cat` 
SET c_poz = `c_poz` - 1 
WHERE `c_poz` > '$p' AND `s_id`= '".intval ($_GET['s'])."' ",$db); 


а как добавить новую позицию ,чтобы не было пропусков ,вы думаю, сами догадаетесь

  Ответить  
 
 автор: DJ Paltus   (03.08.2009 в 12:01)   письмо автору
 
   для: serjinio   (03.08.2009 в 10:40)
 

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

  Ответить  

Сообщения:  [1-10]   [11-20] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования