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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> допустимы ли sql запросы внутри цикла while 
:(
    Опции темы
supervladislav
Дата 4.5.2009, 05:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: -8
Всего: -9



скажите считается ли допустимым наличие sql запросов внутри цикла while ,запрос не один ,если нет то как быть?
PM MAIL   Вверх
Grig
Дата 4.5.2009, 06:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



по возможности лучше генерировать строку запроса, а потом ее выполнять.
Ну а так, конечно можно


--------------------
        
PM MAIL ICQ   Вверх
supervladislav
Дата 4.5.2009, 06:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: -8
Всего: -9



 Maximum execution time of 30 seconds exceeded in Z:\home\localhost\www\www\game\function2.php on line 15
Код

$mainlink=$db->sql_query("SELECT * FROM sh_game ORDER BY data") or die(mysql_error());
if($db->sql_numrows($mainlink)>0){
while($maindat=$db->sql_numrows($mainlink)){
$mylogin=$maindat['login'];
if(!empty($maindat['nix1'])){$mynix1=$maindat['nix1'];}
if(!empty($maindat['nix2'])){$mynix2=$maindat['nix2'];}
if($maindat['people']>=2){
$mynix3="(verhuser='$mynix1' or verhuser='$mynix2') and";
}


Это сообщение отредактировал(а) MoLeX - 4.5.2009, 06:44
PM MAIL   Вверх
MoLeX
Дата 4.5.2009, 06:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

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




M
MoLeX
Модератор: supervladislav, используй кнопку КОД для оформления своего шедевра


Добавлено через 1 минуту и 54 секунды
Цитата(supervladislav @  4.5.2009,  06:29 Найти цитируемый пост)
Maximum execution time of 30 seconds exceeded in Z:\home\localhost\www\www\game\function2.php on line 15

ну время отпущенное на выполнение скрипта у тебя вышло...
можешь увеличить
set_time_limit(0);


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
bars80080
Дата 4.5.2009, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



Цитата(supervladislav @  4.5.2009,  05:36 Найти цитируемый пост)
считается ли допустимым наличие sql запросов внутри цикла while ,запрос не один ,если нет то как быть? 

нет, считаю подобную структуру надуманной

вот к примеру у нас есть меню, пункты и подпункты, хранятся они в одной или двух таблицах - не важно. не раз встречал такую реализацию - выборка пунктов, затем при построении каждого пункта происходил дополнительный запрос с выборкой подпунктов.
возникает вопрос: зачем?
если нам нужно выбрать все подпункты, то почему бы сразу не организовать этот вопрос, соответствующим образом упорядочив данные?
если выбираются подпункты только для ондого пункта, то вообще не понятно зачем while

запросов может быть довольно много, но в любом случае нужно знать сколько и зачем они нужны
PM MAIL WWW   Вверх
SneG0K
Дата 4.5.2009, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

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



Можно! Если на сайте с вашим движком будет сидеть хотя-бы один человек, тогда допустимо...
А вот если там будет уже десять человек, то тогда тебе нужно будет добавить 10 кластеров...
Если сто человек - сто кластеров!!!
Надеюсь вы догадываетесь, что такое кластер и его среднюю стоимость!

Зачем вам цикл? Достаете данные одним запросом, а уже в цикле обрабатываете!

Цитата(supervladislav @  4.5.2009,  05:29 Найти цитируемый пост)
$mainlink=$db->sql_query("SELECT * FROM sh_game ORDER BY data") or die(mysql_error());

or die() - используется только когда возникают критические ошибки... Например: не удалось подключится к базе данных, тогда or die(), а не после каждого запроса... Уверен, что у вас каждая пятая перезагрузка умираетsmile))))
PM WWW Skype   Вверх
supervladislav
Дата 4.5.2009, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: -8
Всего: -9



это суенарий примады неделю его делал а вот теперь он мне машину вещает ))))в нём 12 запросов из них много выборок 
нужно каждый день через программу крон запускать этот скрипт ))))
При включение вешается всё напроч.
ДА а кстате пока незабыл что если использовать 
функции 
Output Buffering Control
Output Control
чтобы недопустить перегрузки памяти 
PM MAIL   Вверх
SneG0K
Дата 4.5.2009, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

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



Не бойся, если твой скрипт сильно зажрется, то PHP сам его вырубит! Так что утечек быть не может...
Лучше сразу составляй нужный запрос, получай все данные, а потом в цикле обрабатывай ресурс... Это будет куда легче...
Цитата(supervladislav @  4.5.2009,  14:25 Найти цитируемый пост)
это суенарий примады неделю его делал а вот теперь он мне машину вещает ))))в нём 12 запросов из них много выборок 

Мой тебе совет - удали его с машины... smile Больше толку будет...
PM WWW Skype   Вверх
enof
Дата 4.5.2009, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(SneG0K @  4.5.2009,  16:41 Найти цитируемый пост)
Не бойся, если твой скрипт сильно зажрется, то PHP сам его вырубит! Так что утечек быть не может...

Ну так вроде у него и проблема в том, что памяти нехватка.
Цитата(supervladislav @  4.5.2009,  16:25 Найти цитируемый пост)

Output Buffering Control
Output Control

И как это поможет? Как в этой ситуации может помочь буфер вывода? У вас мозг есть?
PM MAIL ICQ Skype   Вверх
supervladislav
Дата 4.5.2009, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: -8
Всего: -9



суть запросов тоже не проста ))
существует пирамида где каждому человеку нужно повышать рейтинг за купленный сертификат 
формируются запросы к базе данных ,которые определяют иего нижестоящих ,кол во купленных сертификатов 
если кол во нижестоящих  нужное кол-во происходип пеопределение этого человека на другой уровень уровней 5 
соотведственно 5 ступеней нижестоящих людей нужных для закрытия пирамиды 

PM MAIL   Вверх
Shark
Дата 4.5.2009, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



после прочтения этого:
Цитата

если кол во нижестоящих  нужное кол-во происходип пеопределение этого человека на другой уровень уровней 5 
соотведственно 5 ступеней нижестоящих людей нужных для закрытия пирамиды 
я пойду вешаться!!!


ты сам-то понял че напесал????супервладислав.. а ты себя суперпутиным не считаешь?


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
supervladislav
Дата 4.5.2009, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: -8
Всего: -9



понял 
PM MAIL   Вверх
Photon
Дата 4.5.2009, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Злобный программер
**


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

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



Вот это что такое?

Код

while($maindat=$db->sql_numrows($mainlink)){
}


Как я понимаю - это бесконечный цикл, ибо если в базе есть хоть одна запись с заданными условиями, то $db->sql_numrows() положительное число.

Я, конечно, понимаю, что неплохо получается копировать откуда-то куски кода, но надо же и думать хоть иногда, и читать то, что копируешь.


supervladislav, я уже говорил: не занимайся не своим делом.  PHP - явно не твоё.


--------------------
With best regards..
PM MAIL ICQ Skype GTalk Jabber   Вверх
supervladislav
Дата 4.5.2009, 19:08 (ссылка)    | (голосов:10) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: -8
Всего: -9



чем мне заниматься это не твоё дело 
PM MAIL   Вверх
Shark
Дата 4.5.2009, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



supervladislav, 
Цитата

чем мне заниматься это не твоё дело  

если хочешь этим заниматься.... тогда найми себе репитора, чтоб он тебя учил... может при трате денег ты начнешь думать головой

1. КУПИ себе домой книги по РНР
2. скачай с нета книгу Джона Коггзолла (и на этом форуме ты ее можешь найти)
3. ПОЛЬЗУЙСЯ поиском!
4. по твоим постам можно понять твое мышление!
т.е: ты сидишь, что-то делаешь (без думно копируешь).. увидел, что есть ошибка в коде при попытке вывести что-то в браузер.... и сразу сюда пишешь вопрос.


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




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


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

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