[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Адская смесь
Soldier Ghost
Всем привет написал небольшую функцию как запускаю её падает денвер приходится рубутнуть для дальнейшой работы


function Get_plus($rate, $user_id)
{
$query = mysql_query("SELECT user_id,lesson_id FROM data_date WHERE user_id = '".mysql_real_escape_string($user_id)."' ORDER BY lesson_id");
while ($go = mysql_fetch_array($query))
{

$date_base = strtotime(date("d-m-Y")) + $rate;
$update = mysql_query("UPDATE data_date SET date = '".mysql_real_escape_string($date_base)."' WHERE user_id = '".mysql_real_escape_string($user_id)."'");

$rate = $rate * 2;

Get_plus($rate, $user_id);
}

}



Хотел бы узнать почему О_о или у меня денвер багнутый?
в запросе UPDATE ставлю LIMIT 1 таже беда



Спустя 23 минуты, 25 секунд (3.12.2009 - 15:59) Bezdna написал(а):
Ты функцию Get_plus() зациклил на саму себя.

Спустя 2 минуты, 55 секунд (3.12.2009 - 16:02) Soldier Ghost написал(а):
Да я знаю, мне нужно чтобы с каждый циклом $rate умножалась на 2.
у меня башка уже не варить как это сделать без цикла blink.gif

Спустя 1 час, 30 минут, 8 секунд (3.12.2009 - 17:32) ApuktaChehov написал(а):
Ну так $rate у Вас и так умножается на 2 ровно столько раз, сколько записей выводит SQL

Спустя 4 минуты, 31 секунда (3.12.2009 - 17:36) Soldier Ghost написал(а):
Нет она во всех записях обновляет 1 $rate и во всех записях одно и тоже число а мне нужно по возрастанию
В общем у меня один UPDATE проходит для всех записей сразу, а мне нужно чтобы допустим в первой записи 5 во второй внеслось 10 в третью 20 и тд.. пока записи не кончатся

Спустя 22 минуты, 57 секунд (3.12.2009 - 17:59) ApuktaChehov написал(а):
Чесно? Я ничего не понял laugh.gif

Спустя 13 минут, 9 секунд (3.12.2009 - 18:13) Soldier Ghost написал(а):
Вот представь у юзера под айди 7 существует 20 записей и при выборе выпадающим меню циферки какой нибудь в эти записи по порядку добавляется в одну запись 10 в следущую 20 в следущую 40 и тд.

Спустя 19 минут, 44 секунды (3.12.2009 - 18:32) dr_Lev написал(а):
Попробуй так:

$UpdateSQL = "";
while ($go = mysql_fetch_array($query)){
/*$date_base = strtotime(date("d-m-Y")) + $rate; --- можно проще:*/
$date_base = time() + $rate;
$UpdateSQL.= "UPDATE data_date SET date = '$date_base' WHERE lesson_id = '$go[1]';";

$rate*= 2;
}
mysql_query($UpdateSQL);

Спустя 13 минут, 32 секунды (3.12.2009 - 18:46) Soldier Ghost написал(а):
Не обновляет вообще )

Спустя 37 минут, 45 секунд (3.12.2009 - 19:24) Soldier Ghost написал(а):
Народ помогите huh.gif

Спустя 1 час, 49 минут, 48 секунд (3.12.2009 - 21:13) Romms написал(а):
в первые вижу что от кода Денвер падал... може запусти иной?

Спустя 7 минут, 21 секунда (3.12.2009 - 21:21) krasilich написал(а):
Что бы понять рекурсию нужно понять рекурсию...

Денвер не падает, а зацикливается.

Если действительно падает - смотрим логи и думаем дальше.

Спустя 7 минут, 57 секунд (3.12.2009 - 21:29) ApuktaChehov написал(а):
Проверь сколько раз у тебя выполняется цикл. Выведи на экран эту $rate. Посмотри, что с ней происходит...

Я пробовал все это без обращения к базе данных, $rate стабильно умножается на 2.

Спустя 36 минут, 48 секунд (3.12.2009 - 22:05) Soldier Ghost написал(а):
Сколько раз умножается? у меня бесконечно )

Спустя 7 минут, 12 секунд (3.12.2009 - 22:13) krasilich написал(а):
Не предусмотрен выход из цикла.

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

Спустя 3 минуты, 41 секунда (3.12.2009 - 22:16) dr_Lev написал(а):
Цитата (Soldier Ghost @ 3.12.2009 - 15:46)
Не обновляет вообще )

Извини, писал "на колене"... проверить сейчас нет возможности...
скорее всего ошибка в запросе.
На ошибки не проверял?

Если нет, напиши в конце после строки
mysql_query($UpdateSQL);

такую строчку
echo mysql_error();

Спустя 7 минут, 27 секунд (3.12.2009 - 22:24) Soldier Ghost написал(а):
Да, счастье есть но в базу во все таблицы заносится одно число

Спустя 7 минут, 8 секунд (3.12.2009 - 22:31) Soldier Ghost написал(а):
Цитата (dr_Lev @ 3.12.2009 - 19:16)
Цитата (Soldier Ghost @ 3.12.2009 - 15:46)
Не обновляет вообще )

Извини, писал "на колене"... проверить сейчас нет возможности...
скорее всего ошибка в запросе.
На ошибки не проверял?

Если нет, напиши в конце после строки
mysql_query($UpdateSQL);

такую строчку
echo mysql_error();

Нет, в запросе ошибок нет )

Спустя 15 минут, 6 секунд (3.12.2009 - 22:46) Soldier Ghost написал(а):

function Get_plus($rate, $user_id)
{
$query = mysql_query("SELECT user_id,lesson_id FROM data_date WHERE user_id = '".mysql_real_escape_string($user_id)."' ORDER BY lesson_id");
while ($go = mysql_fetch_array($query))
{

$date_base = strtotime(date("d-m-Y")) + $rate;

$update = mysql_query("UPDATE data_date SET date = '".mysql_real_escape_string($date_base)."' WHERE lesson_id = '".mysql_real_escape_string($go['lesson_id'])."'");

$rate = $rate * 2;
}


}



Работает, всем огромное спасибо


_____________
Schecter damien 6 FR
Быстрый ответ:

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