[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: помогите с циклом
tmt0086
уже сам много вариантов перепробовал, но никак не выходит! sad.gif уже замучался понять ошибки не могу((

   $res = do_sqlquery("SELECT 123 FROM table1 WHERE status = '1'");

if (mysql_num_rows($res) > 0)
{
while ($arr = mysql_fetch_assoc($res))
{
$x=$arr['123'];
quickQuery("UPDATE table2 SET abs = abs+0.500000 WHERE 123 = '$x'");
$res0 = mysql_query("SELECT chas_nado FROM table2 WHERE 123 = '$x'")or die(mysql_error());
$row0 = mysql_fetch_array($res0);
if ($row0["chas_nado"] >= 0.500000){
quickQuery("UPDATE table2 SET chas_nado = chas_nado-0.500000 WHERE 123 = '$x'");
}
}
}

чуть чуть о сути скрипта..
1)ищет в table1 123 со status = '1'
2)если строк таких больше 0, то..
3)цикл
4)прибавляет 0.500000 где 123 = '$x'
5)отнимает 0.500000 где 123 = '$x'
6)окончание цикла

сразу скажу скрипт писал не я rolleyes.gif вот пытаюсь разобраться как он работает))
мне нужно как то из цикла вытащить
       $res0 = mysql_query("SELECT chas_nado  FROM table2 WHERE 123 = '$x'")or die(mysql_error());
$row0 = mysql_fetch_array($res0);
if ($row0["chas_nado"] >= 0.500000){
quickQuery("UPDATE table2 SET chas_nado = chas_nado-0.500000 WHERE 123 = '$x'");
}

но никак не работает оно.. mad.gif я разобраться не могу, помогите пожалуйста rolleyes.gif

вот варианты, как я пробовал
   $res = do_sqlquery("SELECT 123 FROM table1 WHERE status = '1'");

if (mysql_num_rows($res) > 0)
{
while ($arr = mysql_fetch_assoc($res))
{
$x=$arr['123'];
quickQuery("UPDATE table2 SET abs = abs+0.500000 WHERE 123 = '$x'");
}
$res0 = mysql_query("SELECT chas_nado FROM table2 WHERE 123 = '$x'")or die(mysql_error());
$row0 = mysql_fetch_array($res0);
if ($row0["chas_nado"] >= 0.500000){
quickQuery("UPDATE table2 SET chas_nado = chas_nado-0.500000 WHERE 123 = '$x'");
}
}

     if (mysql_num_rows($res) > 0)
{
$res0 = mysql_query("SELECT chas_nado FROM table2 WHERE 123 = '$x'")or die(mysql_error());
$row0 = mysql_fetch_array($res0);
if ($row0["chas_nado"] >= 0.500000){
quickQuery("UPDATE table2 SET chas_nado = chas_nado-0.500000 WHERE 123 = '$x'");
}
while ($arr = mysql_fetch_assoc($res))
{
$x=$arr['123'];
quickQuery("UPDATE table2 SET abs = abs+0.500000 WHERE 123 = '$x'");
}
}


вариантов было много! но ниодин как нужно не работал.. Мне нужно чтобы вот это
       $res0 = mysql_query("SELECT chas_nado  FROM table2 WHERE 123 = '$x'")or die(mysql_error());
$row0 = mysql_fetch_array($res0);
if ($row0["chas_nado"] >= 0.500000){
quickQuery("UPDATE table2 SET chas_nado = chas_nado-0.500000 WHERE 123 = '$x'");
}

выполнялось всего один раз



Спустя 57 минут, 3 секунды (10.07.2010 - 21:29) qpayct написал(а):
друг, излагаешь ты как то по эфиопски честное слово =)) уж простите....
сделайте за меня мол код, который я сам не понимаю....
что такое quickQuery() ?? похоже на функцию из пхп 7.х.х

Спустя 6 минут, 14 секунд (10.07.2010 - 21:35) tmt0086 написал(а):
qpayct
да я не знаю как объяснить biggrin.gif извиняй, что по эфиопски объясняю..
   $res = do_sqlquery("SELECT 123 FROM table1 WHERE status = '1'");

if (mysql_num_rows($res) > 0)
{
while ($arr = mysql_fetch_assoc($res))
{
$x=$arr['123'];
quickQuery("UPDATE table2 SET abs = abs+0.500000 WHERE 123 = '$x'");
$res0 = mysql_query("SELECT chas_nado FROM table2 WHERE 123 = '$x'")or die(mysql_error());
$row0 = mysql_fetch_array($res0);
if ($row0["chas_nado"] >= 0.500000){
quickQuery("UPDATE table2 SET chas_nado = chas_nado-0.500000 WHERE 123 = '$x'");
}
}
}

скрипт прибавляет кароче числа в одну таблицу и вычитает из другой..
нужно чтобы вычетал так же, а вычитал без цикла, тоесть всего один раз!

Спустя 2 минуты, 24 секунды (10.07.2010 - 21:37) qpayct написал(а):
мм..
попробуй просто break; сделай в конце цикла, чтоб один раз делалось. хотя конечно совет это чисто эфиопский laugh.gif

Спустя 2 минуты, 53 секунды (10.07.2010 - 21:40) tmt0086 написал(а):
qpayct
нее, так не выйдет! нужно чтобы это:
       $x=$arr['123'];
quickQuery("UPDATE table2 SET abs = abs+0.500000 WHERE 123 = '$x'");

работало циклом, а вот это:
       $res0 = mysql_query("SELECT chas_nado  FROM table2 WHERE 123 = '$x'")or die(mysql_error());
$row0 = mysql_fetch_array($res0);
if ($row0["chas_nado"] >= 0.500000){
quickQuery("UPDATE table2 SET chas_nado = chas_nado-0.500000 WHERE 123 = '$x'");
}

один раз

Спустя 6 минут, 52 секунды (10.07.2010 - 21:47) qpayct написал(а):
ну так каунтер поставь....
$i=0;
$res = do_sqlquery("SELECT 123 FROM table1 WHERE status = '1'");
if (mysql_num_rows($res) > 0)
{
while ($arr = mysql_fetch_assoc($res))
{
$x=$arr['123'];
quickQuery("UPDATE table2 SET abs = abs+0.500000 WHERE 123 = '$x'");
if($i == 0)
{
$res0 = mysql_query("SELECT chas_nado FROM table2 WHERE 123 = '$x'")or die(mysql_error());
$row0 = mysql_fetch_array($res0);
if ($row0["chas_nado"] >= 0.500000) quickQuery("UPDATE table2 SET chas_nado = chas_nado-0.500000 WHERE 123 = '$x'");
$i++;
}
}
}
или вас в эфиопии этому не учили?

Спустя 6 минут, 35 секунд (10.07.2010 - 21:54) tmt0086 написал(а):
qpayct
чесно сказать нет biggrin.gif я искал, но как понял не то, СПАСИБО ОГРОМНОЕ!!! щас попробую rolleyes.gif

Спустя 5 минут, 18 секунд (10.07.2010 - 21:59) qpayct написал(а):
не ну понятно, если ты думал что проблема в цикле, а по ходу вопроса понял, что надо... тут вывод один - ты плохо подумал =)

Спустя 1 минута, 23 секунды (10.07.2010 - 22:00) tmt0086 написал(а):
qpayct
я уже 3ий день разбираюсь.. я просто тока учусь sad.gif так что не думай, что я не думал

Спустя 8 минут, 5 секунд (10.07.2010 - 22:09) qpayct написал(а):
я это делаю не специально smile.gif у меня это уже давно постепенно входит в привычку wink.gif

Спустя 44 минуты, 40 секунд (10.07.2010 - 22:53) tmt0086 написал(а):
qpayct
не пашет((
    $x=$arr['123'];
quickQuery("UPDATE table2 SET abs = abs+0.500000 WHERE 123 = '$x'");

это прибавляет, а вычетать не хочет

Спустя 13 часов, 23 минуты, 59 секунд (11.07.2010 - 12:17) tmt0086 написал(а):
$res = do_sqlquery("SELECT 123 FROM table1 WHERE status = '1'");
if (mysql_num_rows($res) > 0)
{
while ($arr = mysql_fetch_assoc($res) && $i=0)
{
$x=$arr['123'];
quickQuery("UPDATE table2 SET abs = abs+0.500000 WHERE 123 = '$x'");
if($i == 0)
{
$res0 = mysql_query("SELECT chas_nado FROM table2 WHERE 123 = '$x'")or die(mysql_error());
$row0 = mysql_fetch_array($res0);
if ($row0["chas_nado"] >= 0.500000) quickQuery("UPDATE table2 SET chas_nado = chas_nado-0.500000 WHERE 123 = '$x'");
$i++;
}
}
}


подскажите, а вот так можно?


_____________
Продаю людей. Дешего. Писать в ПС
Быстрый ответ:

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