Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> обозначение подзапросов переменной 
:(
    Опции темы
MaliceInWonderland
Дата 18.6.2007, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 19.4.2007

Репутация: нет
Всего: нет



Код

$level= "select * from catalogue where pid in (select id from catalogue where pid='$id' or pid2='$id') or pid2 in (select id from catalogue where pid='$id' or pid2='$id')"; 
так работает.

возможно присвоить
Код

 $ main ="select id from catalogue where pid='$id' or pid2='$id'";
$result = mysql_query($main);
а затем использовать $result вместо повторяющихся подзапросов?
присвоение возвращает некорректную информацию.


Это сообщение отредактировал(а) MaliceInWonderland - 18.6.2007, 15:58
PM MAIL   Вверх
Glip
Дата 18.6.2007, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 473
Регистрация: 30.12.2006

Репутация: 1
Всего: 18



вообще конечно заменить можно. как-то так
Код

$main ="select id from catalogue where pid='$id' or pid2='$id'";
$level= "select * from catalogue where pid in ($main) or pid2 in ($main)"; 

но кажется мне что изначальный запрос можно оптимизировать


--------------------
user posted image
PM MAIL   Вверх
Всемогущий
Дата 18.6.2007, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 25.6.2006
Где: Челябинск

Репутация: 2
Всего: 13



Пожалуйста 
опишите по русски какие есть исходные данные,и какой должен быть результат


--------------------
Цитата(smartov @  16.1.2007,  13:26 Найти цитируемый пост)
Видел я PHP код, который пишут наСильники, никогда на php не писавшие  :D  То еще зрелище. Все пытаются сделать руками и через ж (как в С привыкли). Все пытаются память освобождать итд итп. 
PM MAIL ICQ   Вверх
MaliceInWonderland
Дата 19.6.2007, 06:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 19.4.2007

Репутация: нет
Всего: нет



каскадно выводим, обновляем, удаляем id и все зависимые поля (связанные с вводимым с клавиатуры $id прямо или косвенно).

нпр,  5550000001(id) 5550000000(pid) 4400000000(pid2) 
         5551000000       5550000001      -//-//-
         5551000001       5551000000
и.т.д.

количество уровней вложенности заранее неизвестно, но > 5.
как можно оптимизировать?

Код

level= "delete id from catalogue where pid in (select id from catalogue where pid in 
(select id from catalogue where pid='$id' or pid2='$id')
 or pid2 in 
(select id from catalogue where pid='$id' or pid2='$id')
  or pid2 in 
(select id from catalogue where pid in 
(select id from catalogue where pid='$id' or pid2='$id')
 or pid2 in 
(select id from catalogue where pid='$id' or pid2='$id')
 )";


Это сообщение отредактировал(а) MaliceInWonderland - 19.6.2007, 07:15
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0983 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.