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 :: Как остоновить функцию!!?!??!

 PHP.SU

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


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

> Без описания
android
Отправлено: 22 Марта, 2012 - 16:16:04
Post Id


Посетитель


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


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




Кусок:
PHP:
скопировать код в буфер обмена
  1.  
  2.         private function test() {              
  3.                 if(@$_GET['test']) {
  4.                         $id  = functions::sql_inc(@$_GET['test']);
  5.                         $sql = mysql_query("SELECT * FROM test WHERE id='$id'");
  6.                         $t   = mysql_fetch_array($sql);
  7.                         if(empty($t['test'])) {
  8.                                 return 'on не найден!';
  9.                                 return false;
  10.                         }
  11.                         mysql_query("DELETE FROM `test` WHERE id='$id'");
  12.                         header('Location: /admin/index.php?q=test');
  13.                 }
  14. }
  15.  


Почему я не могу остановить удаление!?!?!??

пробывал и так

PHP:
скопировать код в буфер обмена
  1. if(empty($t['test'])) {
  2.                                 return 'on не найден!';
  3.                                 die();
  4.                         }



Все равно удаляет!!!
 
 Top
EuGen Администратор
Отправлено: 22 Марта, 2012 - 16:19:33
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




android пишет:
return 'on не найден!';
return false;

Зачем двойной return? уже после первого произойдет возврат.
Далее, по всей видимости, управление не передается в блок if, и

- покажет почему


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
android
Отправлено: 22 Марта, 2012 - 16:22:37
Post Id


Посетитель


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


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




EuGen если ввожу не тот ид то показывает return 'on не найден!';
 
 Top
EuGen Администратор
Отправлено: 22 Марта, 2012 - 16:33:09
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




Если происходит возврат значения, то функция прерывает свою работу


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
android
Отправлено: 22 Марта, 2012 - 16:35:10
Post Id


Посетитель


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


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




проверяю так:

PHP:
скопировать код в буфер обмена
  1.  private function test() {              
  2.  
  3.                 if(@$_GET['test']) {
  4.  
  5.                         $id  = functions::sql_inc(@$_GET['test']);
  6.  
  7.                         $sql = mysql_query("SELECT * FROM test WHERE id='$id'");
  8.  
  9.                         $t   = mysql_fetch_array($sql);
  10.  
  11.                         if(empty($t['test'])) {
  12.  
  13.                                 return 'on не найден!';
  14.  
  15.                         }
  16.                         return $t['test'];
  17.                         //mysql_query("DELETE FROM `test` WHERE id='$id'");
  18.  
  19.                         //header('Location: /admin/index.php?q=test');
  20.  
  21.                 }
  22.  
  23. }
  24.  
  25.  
выводит данные при правильном ID при неправильном выводит on не найден и удаляет все строки в таблице
 
 Top
EuGen Администратор
Отправлено: 22 Марта, 2012 - 16:42:51
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




Значит, удаление происходит где-то в другом месте.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
android
Отправлено: 22 Марта, 2012 - 16:45:14
Post Id


Посетитель


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


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




Без гет запроса TEST все нормально, нечего не удаляется...
(Добавление)
В общем нашел проблему. Так как все данные выводятся в цикле с бд с ними и кнопка удалить, когда копируешь адрес у нее то происходит почему то удаление (Opera) все в норме. Спасибо за уделенное время!
(Добавление)
И еще скромный вопрос, если я указываю return 'text'; то после него нечего работать не будет? или это только при return false ??
 
 Top
EuGen Администратор
Отправлено: 22 Марта, 2012 - 17:27:38
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




После любого return функция возвращает управление вызвавшему ее контексту. Можно даже просто


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
android
Отправлено: 22 Марта, 2012 - 17:31:08
Post Id


Посетитель


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


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




Т.е то что после return отключается?
 
 Top
EuGen Администратор
Отправлено: 22 Марта, 2012 - 17:33:09
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




Не "отключается", просто происходит возврат из функции, и, как следствие, прекращение исполнения того, что указано после return.( Может же быть так, к примеру, что return происходит по какому-либо условию и тогда в том коде, что пишется после return, есть логика)


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 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