[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Почему не работает мой скрипт
Georgiy_Dovidov
Смысл такой если на сервере уже генерируется скрипт от какого та ip-шника то следующий мы не запустим пока не выполнится предыдущий - пока я тестю данный скрипт на денвере и на ip не проверяю

$user = mysql_query("SELECT `zapros`, `num` FROM test WHERE `id`='1'");
$user2 = mysql_fetch_array($user);
$nn = $user2['zapros'];//существует ли запрос
$nnn = $user2['num'];//количество запросов - так для проверки для себя - работает или не работает
if($nn == 0){
$nnn2 = $nnn+1;
$fsaa2= mysql_query("UPDATE test SET `zapros`='1', `num`='$nnn2' WHERE `id`='1'");
$numzap = mysql_query("SELECT * FROM users LIMIT 10000");
$posts = mysql_num_rows($numzap);
$fsaa2= mysql_query("UPDATE test SET `zapros`='0' WHERE `id`='1'");
}

запуская раза 3 скрипт за 1 секунду и через 10 секунд ожидания выполнения вижу что он действительно выполнился 3 раза - хотя не должен так как при втором запросе $nn == 1, а раз 1 то скрипт не должен запуститься... в чем моя ошибка?



Спустя 20 минут, 35 секунд (31.05.2012 - 00:56) inpost написал(а):
Georgiy_Dovidov
Переменная действительна в области только ДАННОГО скрипта, при повторном открытии - запускается скрипт этот же, но заново, в котором переменных нет.

Для передачи переменных между скриптами используются: База Данных, Сессия, Куки, файлы.

Спустя 12 минут, 22 секунды (31.05.2012 - 01:08) Zzepish написал(а):
$user2 = mysql_fetch_array($user);
меняешь на
$user2 = mysql_fetch_assoc($user);

Спустя 49 секунд (31.05.2012 - 01:09) Zzepish написал(а):
и всегда юзай mysql_fetch_assoc();

Спустя 1 час, 15 минут, 20 секунд (31.05.2012 - 02:24) Georgiy_Dovidov написал(а):
Цитата (Zzepish @ 30.05.2012 - 22:09)
и всегда юзай mysql_fetch_assoc();

не помогло!

Спустя 3 минуты, 51 секунда (31.05.2012 - 02:28) Georgiy_Dovidov написал(а):
Цитата (inpost @ 30.05.2012 - 21:56)
Georgiy_Dovidov
Переменная действительна в области только ДАННОГО скрипта, при повторном открытии - запускается скрипт этот же, но заново, в котором переменных нет.

Для передачи переменных между скриптами используются: База Данных, Сессия, Куки, файлы.

Если присмотреться в мой скрипт то там понятно видно что 1 записывается в базу - при следующем запросе 1 выводится из базы, а раз переменная не равняется 0 то скрипт не должен выполняться, после как скрипт подсчитал количество пользователей то в базу записывается 0 - после чего скрипт может быть выполнен при следующем его запросе...

Спустя 18 минут, 51 секунда (31.05.2012 - 02:47) walerus написал(а):
Сколько по времени, выполняется скрипт, за 1н прогон от начала до конца?, если менее секунды, то так и будет 3ри раза запуск, т.к. скрипт успевает отрабатывать, но не понятно тогда от куда задержка в 10ть секунд у тебя...

И как бы не видно всего скрипта, мб у тебя что то дальше продолжает работать... где в условии exit хотя бы? - если скрипт уже работает...

Спустя 25 минут, 28 секунд (31.05.2012 - 03:12) Georgiy_Dovidov написал(а):
Цитата (walerus @ 30.05.2012 - 23:47)
Сколько по времени, выполняется скрипт, за 1н прогон от начала до конца?, если менее секунды, то так и будет 3ри раза запуск, т.к. скрипт успевает отрабатывать, но не понятно тогда от куда задержка в 10ть секунд у тебя...

И как бы не видно всего скрипта, мб у тебя что то дальше продолжает работать... где в условии exit хотя бы? - если скрипт уже работает...

У меня дальше не чего не выполняется, я его пока тестирую, если бы он работал то можно было дописать exit если $nn не равна 0, я сейчас специально создал 50к пользователей в таблице users чтобы скрипт генерировался не меньше 12 секунд (у меня комп слабенький) проверял 12 секунд выполняется скрипт.
Нажал 5 раз F5 5 раз выполнился скрипт, у меня такое предположение, может быть denwer настроен так что он ожидает пока выполнится один скрипт и ставит в очередь остальные, и когда выполняется 1 скрипт он соответственно в конце прописывает 0 после запускается второй скрипт видит 0 и выполняется - я даже проверил свои предположения (убрал строчку
$fsaa2= mysql_query("UPDATE test SET `zapros`='0' WHERE `id`='1'");
), в конце скрипта, и действительно помогло, хоть 30 раз нажми в секунду f5 либо зажми ее, он выполнится 1 раз.
Подскажите пожалуйста как можно решить такую проблему, то есть чтоб скрипты не стояли в очереди
Быстрый ответ:

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