Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: While для удаления нескольких строк

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: While для удаления нескольких строк
I_CaR
Отправлено: 07 Апреля, 2013 - 11:31:08
Post Id



Новичок


Покинул форум
Сообщений всего: 62
Дата рег-ции: Март 2011  
Откуда: Красноярск


Помог: 0 раз(а)




Доброго всем здравия!
Я программист на pascal (там понятнее цикл while), а в php самоучка и до сих пор многое понять не могу.
Вот есть два значения первая запись $first_id_rec и последняя $last_id_rec
Делаю сравнение While и код срабатывает, но один раз и всё зависает в "504 Gateway Time-out"
PHP:
скопировать код в буфер обмена
  1. do
  2.    {
  3.       mysql_query ("DELETE FROM $userstable WHERE `ID` =('$first_id_rec');", $db);
  4.    }
  5. while (($first_id_rec+7) < $last_id_rec);

Что в этой конструкции не так?
Ведь условие простое - "делать удаление первой_строки пока №_первой_строки+7 < №_последней".
(P.S. почему в php так всё сложно-то!)

(Отредактировано автором: 07 Апреля, 2013 - 11:31:57)

 
 Top
Мелкий Супермодератор
Отправлено: 07 Апреля, 2013 - 11:35:15
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




В паскале точно так же нет никакой магии.
I_CaR пишет:
while (($first_id_rec+7) < $last_id_rec);

выполнять, пока 5+7 меньше 20

Вы же $first_id_rec нигде не увеличиваете в цикле, условие истинно всегда, бесконечный цикл.


-----
PostgreSQL DBA
 
 Top
I_CaR
Отправлено: 07 Апреля, 2013 - 11:39:37
Post Id



Новичок


Покинул форум
Сообщений всего: 62
Дата рег-ции: Март 2011  
Откуда: Красноярск


Помог: 0 раз(а)




Сделал!!!
PHP:
скопировать код в буфер обмена
  1. if (($first_id_rec+7) < $last_id_rec)
  2. {
  3. do
  4.         {
  5.                 mysql_query ("DELETE FROM $userstable WHERE `ID` =('$first_id_rec');", $db);
  6.                 $result3 = mysql_query ("SELECT `id`, `tabldate` FROM $userstable", $db);                      
  7.                 $first_id_rec = mysql_result($result3,0,0);                    
  8.         }
  9.         while (($first_id_rec+7) < $last_id_rec);
  10. }

Ну и ну, вот эта архитектура!!!
В Pascal'е
всё ПРОЩЕ!
там:
CODE (htmlphp):
скопировать код в буфер обмена
  1. while (first_id_rec+7) < last_id_rec do
  2.    begin
  3.        удалить строки!
  4.    end;

ВСЁ

(Отредактировано автором: 07 Апреля, 2013 - 11:41:15)

 
 Top
caballero
Отправлено: 07 Апреля, 2013 - 11:48:35
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




при чем тут архитектура если у тебя код кривой - в паскале тебя зациклит точно так же.
напиши в паскале тоже самое для работы с БД -и увидишь где проще а где сложнее
кстати что мешает писать сайты на Паскале раз там все так клево?

(Отредактировано автором: 07 Апреля, 2013 - 11:54:36)



-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
re_nat
Отправлено: 07 Апреля, 2013 - 12:03:41
Post Id



Частый гость


Покинул форум
Сообщений всего: 198
Дата рег-ции: Март 2012  


Помог: 5 раз(а)





Цитата:
Я программист на pascal
Много уже на паскале напрограммировали с такими дырами в логике?
 
 Top
LIME
Отправлено: 07 Апреля, 2013 - 12:22:01
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




абсолютно ничем while не отличается в этих языках
и в паскале насколько помню есть аналог do while
repeat untill называется ))
 
 Top
I_CaR
Отправлено: 07 Апреля, 2013 - 13:03:42
Post Id



Новичок


Покинул форум
Сообщений всего: 62
Дата рег-ции: Март 2011  
Откуда: Красноярск


Помог: 0 раз(а)




re_nat пишет:

Цитата:
Я программист на pascal
Много уже на паскале напрограммировали с такими дырами в логике?

Много, только это было лет 5-10 назад Улыбка
вот сколько + ещё куча не опубликованного
И как известно, если годами не заниматься тем, чем занимаешься, то квалификация к чёрту.
 
 Top
Мелкий Супермодератор
Отправлено: 07 Апреля, 2013 - 13:11:54
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




I_CaR пишет:
всё ПРОЩЕ!
там:

Ну и абсолютно тот же бесконечный цикл.
Ошибки логики от языка не зависят.


-----
PostgreSQL DBA
 
 Top
LIME
Отправлено: 07 Апреля, 2013 - 13:18:59
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




I_CaR пишет:
Много, только это было лет 5-10 назад
у меня это было 17 лет назад))
однако же...помню же что-то))
 
 Top
caballero
Отправлено: 07 Апреля, 2013 - 13:20:59
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
И как известно, если годами не заниматься тем, чем занимаешься, то квалификация к чёрту.

так разберись с квалификацией потом умничай насчет языков


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB