Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.08.2011, 13:06   #1
Dmitry1983
Пользователь
 
Регистрация: 24.06.2011
Сообщений: 80
По умолчанию временная таблица по итогам выборки

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

$query = "SELECT a.uid,
a.tip,
a.name_rus,
a.namera,
a.namesub,
b.gid,
b.nas,
b.new,
c.kolvo_ms,
c.po_dep,
c.ma_form,
c.po_form
FROM geo_base AS a INNER JOIN geo_data as b ON b.gid=a.uid INNER JOIN geo_omsu AS c ON c.gid=a.uid WHERE ".$where." AND a.tip IN (".$IN.") ORDER BY b.nas LIMIT $kolvo";

echo $query;
$result = mysql_query($query);

можно ли результат выборки записать во временную таблицу? чтоб дальше с ней работать... что-то подобное вроде уже делал(( а найти и вспомнить не могу

мне нужно результаты в дальнейшем группировать по 2 признакам...
спасибо!
Dmitry1983 вне форума Ответить с цитированием
Старый 28.08.2011, 13:10   #2
justmozg
Пользователь
 
Регистрация: 26.08.2011
Сообщений: 41
По умолчанию

Создаешь новую таблицу.
Потом в цикле обрабатываешь результат выборки.
Телом цикла является запрос на добавление записи в новую таблицу.
justmozg вне форума Ответить с цитированием
Старый 28.08.2011, 13:22   #3
Dmitry1983
Пользователь
 
Регистрация: 24.06.2011
Сообщений: 80
По умолчанию

нельзя ли направить на путь истинный немногим более конкретно?
$sql="CREATE TABLE part-time(a.uid,
a.tip,
a.name_rus,
a.namera,
a.namesub,
b.gid,
b.nas,
b.new,
c.kolvo_ms,
c.po_dep,
c.ma_form,
c.po_form)";
mysql_query($sql);

так?
потом while ($itog = mysql_fetch_row( $result)){
echo "INSERT INTO part-time(a.uid,
a.tip,
a.name_rus,
a.namera,
a.namesub,
b.gid,
b.nas,
b.new,
c.kolvo_ms,
c.po_dep,
c.ma_form,
c.po_form) values('$itog[0]', '$itog[1]',...)


}

Так???

п.с. SELECT a.uid, a.tip, a.name_rus, a.namera, a.namesub, b.gid, b.nas, b.new, c.kolvo_ms, c.po_dep, c.ma_form, c.po_form FROM geo_base AS a INNER JOIN geo_data as b ON b.gid=a.uid INNER JOIN geo_omsu AS c ON c.gid=a.uid WHERE 1=1 AND b.nas > '1000' AND b.nas < '5000' AND a.tip IN (2,3,4,5) ORDER BY b.nas LIMIT 30

Fatal error: Maximum execution time of 30 seconds exceeded in Z:\home\localhost\www\pr1808\munvyb orword2.php on line 648

в чем может быть проблема? очень долго обрабатывается запрос( в БД порядка 10 таблиц по 18000 записей в каждой, по 5-15 столбцов...
в запросе? вряд ли... может в типах данных? некоторые таблицы по 4.5 мб...

Последний раз редактировалось Dmitry1983; 28.08.2011 в 13:26.
Dmitry1983 вне форума Ответить с цитированием
Старый 28.08.2011, 13:31   #4
justmozg
Пользователь
 
Регистрация: 26.08.2011
Сообщений: 41
По умолчанию

Да, типа того.

Это селект так долго обрабатывается, или ты уже инсерт добавил?
justmozg вне форума Ответить с цитированием
Старый 28.08.2011, 13:39   #5
Dmitry1983
Пользователь
 
Регистрация: 24.06.2011
Сообщений: 80
По умолчанию

Цитата:
Сообщение от justmozg Посмотреть сообщение
Да, типа того.

Это селект так долго обрабатывается, или ты уже инсерт добавил?
селект

без инсертов... это параллельные вопросы(((
вот и думаю сначала инсерт сделать
$query = "SELECT a.uid,
a.tip,
a.name_rus,
a.namera,
a.namesub,
b.gid,
b.nas,
b.new,
c.kolvo_ms,
c.po_dep,
c.ma_form,
c.po_form
FROM geo_base AS a INNER JOIN geo_data as b ON b.gid=a.uid INNER JOIN geo_omsu AS c ON c.gid=a.uid WHERE ".$where." AND a.tip IN (".$IN.") ORDER BY b.nas LIMIT $kolvo";

echo $query;
$result = mysql_query($query);
$itog=mysql_fetch_array($result);

$sql22="CREATE TABLE part_time (a.uid,
a.tip,
a.name_rus,
a.namera,
a.namesub,
b.gid,
b.nas,
b.new,
c.kolvo_ms,
c.po_dep,
c.ma_form,
c.po_form)";
mysql_query($sql22);

while ($itog = mysql_fetch_row( $result))
{
$sql33= "INSERT INTO part_time(a.uid,
a.tip,
a.name_rus,
a.namera,
a.namesub,
b.gid,
b.nas,
b.new,
c.kolvo_ms,
c.po_dep,
c.ma_form,
c.po_form) values('$itog[0]', '$itog[1]','$itog[2]', '$itog[3]','$itog[4]', '$itog[5]','$itog[6]', '$itog[7]','$itog[8]', '$itog[9]','$itog[10]', '$itog[11]')";
mysql_query($sql33);
}

не фурычит
Dmitry1983 вне форума Ответить с цитированием
Старый 28.08.2011, 13:51   #6
justmozg
Пользователь
 
Регистрация: 26.08.2011
Сообщений: 41
По умолчанию

А если ты оставишь один селект и все, скрипт подвиснет?
justmozg вне форума Ответить с цитированием
Старый 28.08.2011, 13:57   #7
Dmitry1983
Пользователь
 
Регистрация: 24.06.2011
Сообщений: 80
По умолчанию

вынужден убрать полный код

Последний раз редактировалось Dmitry1983; 28.08.2011 в 23:48.
Dmitry1983 вне форума Ответить с цитированием
Старый 28.08.2011, 14:01   #8
justmozg
Пользователь
 
Регистрация: 26.08.2011
Сообщений: 41
По умолчанию

Да блин. Если ты оставишь селект один, без всего, ошибка возникнет?
justmozg вне форума Ответить с цитированием
Старый 28.08.2011, 14:30   #9
Dmitry1983
Пользователь
 
Регистрация: 24.06.2011
Сообщений: 80
По умолчанию

Цитата:
Сообщение от justmozg Посмотреть сообщение
Да блин. Если ты оставишь селект один, без всего, ошибка возникнет?
не ругайтесь) что значит один селект без всего? у меня селект формируется путем проверок... я оставляю один селект без вывода резалтов на экран - ошибки не возникает... но все равно достаточно медленно
Dmitry1983 вне форума Ответить с цитированием
Старый 28.08.2011, 14:32   #10
Dmitry1983
Пользователь
 
Регистрация: 24.06.2011
Сообщений: 80
По умолчанию

какие можно сервисные команды прописать, чтоб найти ошибки? или время прохождения каждого этапа?
Dmitry1983 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Временная таблица Ivol Microsoft Office Access 4 26.08.2010 14:43
Как выставить место по итогам конкурса mityakul Microsoft Office Excel 13 12.04.2010 18:25
Временная таблица Tomatos БД в Delphi 10 31.05.2009 14:45
Временная таблица nimf БД в Delphi 12 26.11.2007 11:48
Временная таблица Баламут БД в Delphi 2 19.07.2007 13:52