Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 11.04.2016, 12:25   #1
s88s
Форумчанин
 
Регистрация: 02.01.2014
Сообщений: 355
Репутация: 83
По умолчанию Правильно я понимаю в PHP return нужно разместить в function.php что бы получилось так :

Доброго времени суток!

Вопрос у меня по функциям ... раньше думал что функциями не буду пользоваться типо они на фиг не нужны мне и так все норм пишется ... но когда увидел объем скрипта захотелось немного разбить по файлам ... отошел я чаво то от сути вопроса:

У меня есть функция с запросом sql

function.php
Код:
function lol($lol){
	$bd_lol = "SELECT * FROM name WHERE `name` = '$name'";
	 $result = mysql_query($bd_lol) or die(mysql_error());
	 $result_lol = mysql_num_rows($result);
}
и есть второй файл index.php в котором я делаю проверку есть ли что то подобное в базе или нет

index.php
Код:

...

lol($lol);

if($result_lol == 0){

   echo "Какое то содержимое";

}

...
Как при этом варианте мне сделать проверку ?

На данный момент мне выдает ошибку

Код:
( ! ) Notice: Undefined variable: result_lol in /var/www/test.php on line 31
__________________
"Я не волшебник, я только учусь"
s88s вне форума   Ответить с цитированием
Старый 11.04.2016, 12:27   #2
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,026
Репутация: 3738

icq: 512-765
skype: alexp.frl
По умолчанию

return
Alex11223 на форуме   Ответить с цитированием
Старый 11.04.2016, 12:45   #3
s88s
Форумчанин
 
Регистрация: 02.01.2014
Сообщений: 355
Репутация: 83
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
return
Правильно я понимаю return нужно разместить в function.php что бы получилось так :

Код:
function lol($lol){
	$bd_lol = "SELECT * FROM name WHERE `name` = '$name'";
	 $result = mysql_query($bd_lol) or die(mysql_error());
	 $result_lol = mysql_num_rows($result);
	 return $result_lol;
}
__________________
"Я не волшебник, я только учусь"
s88s вне форума   Ответить с цитированием
Старый 11.04.2016, 12:52   #4
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,026
Репутация: 3738

icq: 512-765
skype: alexp.frl
По умолчанию

http://php.net/manual/en/functions.returning-values.php
Alex11223 на форуме   Ответить с цитированием
Старый 11.04.2016, 14:33   #5
s88s
Форумчанин
 
Регистрация: 02.01.2014
Сообщений: 355
Репутация: 83
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Разобрался в своем вопросе =)

Alex11223 надо было не return делать а $result_lol объявить глобальной переменной .

Вот как должно получится

Код:

function lol($lol){
	$bd_lol = "SELECT * FROM name WHERE `name` = '$name'";
	 $result = mysql_query($bd_lol) or die(mysql_error());
	 global $result_lol;
	 $result_lol = mysql_num_rows($result);
}
__________________
"Я не волшебник, я только учусь"
s88s вне форума   Ответить с цитированием
Старый 11.04.2016, 14:35   #6
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 25,873
Репутация: 5617
По умолчанию

s88s, когда ознакомитесь в синтаксисом описания функции и возврата из неё значения, тогда подумайте, что за переменная $lol, которую Вы в функцию передаёте и которая там не используется (значит, она там и не нужна).
Зато нужна $name, которую Вы не передаёте

ваша функция (в первом приближении):

Код:
function getNumRows($name){
	 $result = mysql_query("SELECT * FROM name WHERE `name` = '$name'") or die(mysql_error());
	 return mysql_num_rows($result);
}

Цитата:
надо было не return делать а $result_lol объявить глобальной переменной
НЕ НАДО использовать глобальные переменные!!
Serge_Bliznykov на форуме   Ответить с цитированием
Старый 11.04.2016, 15:45   #7
s88s
Форумчанин
 
Регистрация: 02.01.2014
Сообщений: 355
Репутация: 83
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
s88s, когда ознакомитесь в синтаксисом описания функции и возврата из неё значения, тогда подумайте, что за переменная $lol, которую Вы в функцию передаёте и которая там не используется (значит, она там и не нужна).
Зато нужна $name, которую Вы не передаёте

ваша функция (в первом приближении):

Код:
function getNumRows($name){
	 $result = mysql_query("SELECT * FROM name WHERE `name` = '$name'") or die(mysql_error());
	 return mysql_num_rows($result);
}
НЕ НАДО использовать глобальные переменные!!
Да да да сори просто голова не варит $lol была не правильно написана мой косяк чаво то запрограмился .

Вопрос тогда вот какой: А как мне сделать проверку?

перед проверкой я вывожу функцию

PHP код:
getNumRows($name);

if(
$result == 0){

  
//Если ноль записей выполняем все что находится в этом блоке 

}else {

  
//А если запись нашлась то выполняем эту часть кода


PS Сильно не пинайте подтягиваю знания свои
__________________
"Я не волшебник, я только учусь"
s88s вне форума   Ответить с цитированием
Старый 11.04.2016, 16:20   #8
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 25,873
Репутация: 5617
По умолчанию

Код:

if(getNumRows($name) == 0){

  //Если ноль записей выполняем все что находится в этом блоке 

}else {

  //А если запись нашлась то выполняем эту часть кода

}
Serge_Bliznykov на форуме   Ответить с цитированием
Старый 11.04.2016, 16:48   #9
s88s
Форумчанин
 
Регистрация: 02.01.2014
Сообщений: 355
Репутация: 83
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Код:

if(getNumRows($name) == 0){

  //Если ноль записей выполняем все что находится в этом блоке 

}else {

  //А если запись нашлась то выполняем эту часть кода

}
спасибо за ответ ... прошу прощенья за то что нормально не подумал головой ( Все оказалось так просто
__________________
"Я не волшебник, я только учусь"
s88s вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PHP - case внутри функции нужен ли break когда делаем return? fishlabsoman PHP 3 29.10.2012 12:15
Ошибка Function needs result type. Что не так? Crabobass Помощь студентам 4 17.04.2011 16:11
что не так с php кдом или с настройками MySQL+PHP Jimmi Помощь студентам 2 27.12.2010 10:03
Правильно ли я понимаю, php-скрипты нужно положить в папку cgi-bin, чтобы всё работало? Gtx541 PHP 8 22.07.2010 18:08
Оптимизация PHP-скрипта: Что быстрее function или include? Виталий Желтяков PHP 18 08.07.2010 22:35


12:31.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.