[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: sql запрос = Fatal error
maZa
do

{

$idus = "SELECT `id`
FROM `users`
WHERE `id`= '{$idi}'
LIMIT 1";
{

->>>>>>>> $sqlc = mysql_query($idus) or die(mysql_error());


if (mysql_num_rows($sqlc) == 1)



В строчке обозначенной >>>>>> Выдает ошибку: Fatal error: Maximum execution time of 30 seconds exceeded in z:\home\localhost\www\auth\index.php on line 191 (перевод :Фатальная ошибка: Максимальное время выполнения 30 секунд превысило в z:\home\localhost\www\auth\index.php на линии 191
)
Немогу понять в чем проблема... Помоготе.. huh.gif



Спустя 12 минут, 38 секунд (2.10.2009 - 19:46) sergeiss написал(а):
А чего помогать-то? smile.gif

Превышено максимальное время ожидания. 30 секунд.
Для начала попробуй запустить этот же запрос в phpmysqladmin (или как там эта хрень называется smile.gif), и посмотри, сколько времени уйдет на выполнение.

Время на работу скрипта можно увеличить, но сначала разберись с запросом. Очень даже возможно, что у тебя нету индексов по этому полю. Если нету - то надо сделать. Время выполнения запроса существенно уменьшится. Для большой таблицы - даже на несколько порядков может уменьшиться.

Спустя 7 минут, 29 секунд (2.10.2009 - 19:53) maZa написал(а):
Показывает записи 0 - 0 (1 всего, Запрос занял 0.0005 сек)
SQL-запрос : [Правка] [Описать SQL] [Создать PHP-код]
SELECT *
FROM `users`
WHERE `id` =1 LIMIT 0 , 30


Вообще запрос через sql тут не причем...

Спустя 5 минут, 53 секунды (2.10.2009 - 19:59) glock18 написал(а):
чую я, что там бесконечный цикл.

Спустя 12 минут, 32 секунды (2.10.2009 - 20:12) sergeiss написал(а):
glock18 - где бесконечный цикл? ТС говорит, что тайм-аут показывается в строке, где идет запрос.

Запусти такой запрос, и посмотри, пройдет ли он (в скприпте). Т.е., будет тайм-аут или запрос пройдет.

SQL
SELECT count(*)
FROM `users` WHERE `id` =1 LIMIT 0, 30

Спустя 5 минут, 3 секунды (2.10.2009 - 20:17) maZa написал(а):
Во во qlock18 .. пробывал по другому вывести... выводит постоянно.. как остановить? к примеру do { } while ... мм... Ну вот есть id пользователя в базе, нужно что бы проверялось есть такой ид или нету, если есть то вывод чтото если нету, то пропускает и ищет дальше ид (просто бывает id 3,4,6,... я узнаю этот ид так
do
$idus = "SELECT `id`
FROM `users`
WHERE `id`= '{$idi}'
LIMIT 1";
{

$sqlc = mysql_query($idus) or die(mysql_error());


if (mysql_num_rows($sqlc) == 1) - тут проверяю есть ли id
если есть то делается.... как потом остановить? или что можно сделать, мож както подругому єто написать... а то я сам чтото запутался... уже 3 день мозги парю... и вообще будут еще вопросы... мож даш аську.. да там будет быстрее...если все ок.. то кину, чтото, на твой Z ... huh.gif

Спустя 6 минут, 22 секунды (2.10.2009 - 20:23) sergeiss написал(а):
О, майн гот!!!! blink.gif

ЗАБУДЬ про цикл do-while, и используй только while в такой ситуации. И не читай и не слушай Попова!

Плюс к этому, как я подозреваю, тебе надо сделать цикл уже ПОСЛЕ запроса.

PPS. Глок - ты был прав насчет бесконечного цикла smile.gif

Спустя 1 минута, 53 секунды (2.10.2009 - 20:25) maZa написал(а):
biggrin.gif что за Попов?

Спустя 3 минуты, 5 секунд (2.10.2009 - 20:28) sergeiss написал(а):
maZa - если ты не по Попову учишься, то тогда забудь эту фразу smile.gif

Короче говоря, тебе надо:
1. Сначала выполнить запрос.
2. Потом запустить цикл while
PHP
while( $row=mysql_fetch_assoc( $sqlc ) )
{
// если нету ни одной строки в выборке, то тогда внутрь цикла вообще ни разу не попадешь
...

}

Спустя 3 минуты, 49 секунд (2.10.2009 - 20:32) maZa написал(а):
Ммм... как моно while использывать... Допустим админка... хочу вывести все о всех пользывателях.... делаю начальный id=1 , потом do потом конект к базе, проверка на естественность такого id , если id найден, то вывожу что нужно из этого id (к примеру его дату регестрации (неважно что) ) , далее Я к id прибавляю 1 (id++) и делаю проверку еще раз.... и т.д.. как потом остановить, или как моно это выразить?
Потскажите пожалуйста!!!

Спустя 2 минуты, 57 секунд (2.10.2009 - 20:35) maZa написал(а):
Забыл добавить id идет так 3,4,6,7,10 тоесть с пробелами..

Спустя 1 минута, 40 секунд (2.10.2009 - 20:36) sergeiss написал(а):
Цитата (maZa @ 2.10.2009 - 21:32)
как потом остановить, или как моно это выразить?
Потскажите пожалуйста!!!

Я тебе только что сказал, читай внимательнее:
Цитата (sergeiss @ 2.10.2009 - 21:28)
1. Сначала выполнить запрос.
2. Потом запустить цикл while


Внутри цикла - никаких коннектов к базе!!! Никаких запросов!!! Точнее говоря, именно в твоем случае в цикле не должно быть никаких запросов.

PS. Ну так и сделай выборку сразу всех строк, где есть нужные тебе айдишники.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.