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

Форум MySQL

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

 

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

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

тема: доступ к 3 первым знакам введенного значения

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

 
 автор: cheops   (18.06.2007 в 10:41)   письмо автору
 
   для: Medulla   (18.06.2007 в 07:25)
 

Под новые вопросы лучше заводить новые темы.

   
 
 автор: Medulla   (18.06.2007 в 07:25)   письмо автору
 
   для: Trianon   (17.06.2007 в 20:43)
 

необходимо каскадно обновить/удалить только зависимые от id записи. количество уровней заранее неизвестно.

нпр, id
5550000000
5551000000
5551000001
5551000002
5551100000 5551100001

в базе:
id | kod (определяет вышестоящий уровень)
5551000000 | 5550000000
5551100001 | 5551100000

присваиваем 5551000000=666100000=> должны измениться только 6661000001
6661000002

$query = "UPDATE catalogue  SET id  = CONCAT('$new_prefix', SUBSTRING(id, 
1+LENGTH('$old_prefix'))) WHERE id like 
'{$old_prefix}_______' and kod = $id or 
kod2 = $id or (kod  =id or kod2 =id in 
(select * from catalogue where 
kod =id  or kod2 =id in (select * from 
catalogue where 
))) и.т.д.
";  



"UPDATE catalogue  SET kod  = 
CONCAT('$new_prefix', SUBSTRING(kod, 
1+LENGTH('$old_prefix'))) WHERE kod like 
'{$old_prefix}_______'and kod = $id or kod2 
= $id[-//-//query]"; 


"UPDATE catalogue  SET kod2  = 
CONCAT('$new_prefix', SUBSTRING(kod2, 
1+LENGTH('$old_prefix'))) WHERE kod2 like 
'{$old_prefix}_______'and kod = $id or kod2 
= $id[-//-//query]"; 

$query4="delete *  from catalogue 
where id=$id 
or kod= $id   or kod2 = $id  or
(kod=id or kod2=id  in (select  * from 
catalogue where 
kod=id  or kod2=id   in (select * from 
catalogue where 
kod=id   or kod2=id    (select  * from 
catalogue where 
or kod=id   or kod2=id  (select * from 
catalogue where 
)
))
))";

не знаю как исправить.

   
 
 автор: Trianon   (17.06.2007 в 20:43)   письмо автору
 
   для: Medulla   (17.06.2007 в 20:39)
 

Почему не работает?

У Вас пока нечего объединять.

   
 
 автор: Medulla   (17.06.2007 в 20:39)   письмо автору
 
   для: Medulla   (15.06.2007 в 13:02)
 

опять вопросы)

структура таблицы id, ....., kod,kod2 (обозначают родителские id)

выполняю запрос:

$query = "UPDATE catalogue  SET id  = CONCAT('$new_prefix', SUBSTRING(id, 1+LENGTH('$old_prefix'))) WHERE id like '{$old_prefix}_______'"; 


необходимо чтобы kod/2 также получили новые префиксы, аналог. id:

$query2 = "UPDATE catalogue  SET kod  = CONCAT('$new_prefix', SUBSTRING(kod, 1+LENGTH('$old_prefix'))) WHERE kod like '{$old_prefix}_______'"; 
так не работает.
каким образом можно объединить все запросы в один? заранее спасибо

   
 
 автор: Medulla   (15.06.2007 в 14:59)   письмо автору
 
   для: Trianon   (15.06.2007 в 14:48)
 

спасибо большое)

   
 
 автор: Trianon   (15.06.2007 в 14:48)   письмо автору
 
   для: Medulla   (15.06.2007 в 14:45)
 

substr($id2,0,3);

   
 
 автор: Trianon   (15.06.2007 в 14:48)   письмо автору
 
   для: Medulla   (15.06.2007 в 14:45)
 

substr($id,0,3);

   
 
 автор: Medulla   (15.06.2007 в 14:47)   письмо автору
 
   для: Trianon   (15.06.2007 в 14:20)
 

-

   
 
 автор: Medulla   (15.06.2007 в 14:45)   письмо автору
 
   для: Trianon   (15.06.2007 в 14:20)
 

$old_prefix =substr($id,0,2);
$new_prefix = substr($id2,0,2);
$query = "UPDATE catalogue SET id = COUNCAT('$new_prefix', SUBSTRING(id, 1+LENGTH('$old_prefix'))) WHERE id like '{$old_prefix}_______'";

результата нет.

   
 
 автор: Trianon   (15.06.2007 в 14:20)   письмо автору
 
   для: Medulla   (15.06.2007 в 14:02)
 


$old_prefix = '555';
$new_prefix = '666';
$query = "UPDATE catalogue 
SET id = COUNCAT('$new_prefix', SUBSTRING(id, 1+LENGTH('$old_prefix')))
WHERE id like '{$old_prefix}_______'"

   

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

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

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