Перейти к содержимому

Реферальная программа Мегаплана


Как правильно реализовать такие функции?

#1 alex159

alex159
  • Пользователь
  • 492 сообщений
  • Репутация: 32
0

Отправлено 30 Август 2013 - 11:53

Всем доброе время суток!
До сих пор есть проблемы с функциями.

К примеру есть такой код:
function check() {
$result = mysql_query("select online from seting"); 
$row = mysql_fetch_row($result); 
if($row['online'] == "1") {
include ("$_site"."template/default/index.php");
}
else
{
include ("$_site"."down.html");
}
}

При выводе [code=auto:0]echo check();[/CODE нечего не происходит . Это же и-за того что нету return.

То есть как сделать что бы вернул действие include? Или же бывает когда нужно вернуть
Полностью do, while.

 

 

  • 0

#2 alex159

alex159
    Topic Starter
  • Пользователь
  • 492 сообщений
  • Репутация: 32

Отправлено 30 Август 2013 - 14:35

function check() {
$result = mysql_query("select online from seting");
$row = mysql_fetch_row($result);
if($row['online'] == "1") {
include ("$_site"."template/default/index.php");
}
else
{
include ("$_site"."down.html");
}
}
Для этого я понял как можно сделать

function check() {
$result = mysql_query("select online from seting");
$row = mysql_fetch_row($result);
if($row['online'] == "1") { $scan = "true"; } else { $scan = "false"; }
return $scan;
}
Так можно сделать, а потом проверку.

А что делать к примеру с do...While ?
  • 0

#3 fedornabilkin

fedornabilkin
  • Пользователь
  • 696 сообщений
  • Репутация: 91

Отправлено 31 Август 2013 - 10:35

В таком случае проще вернуть $row и делать с ним что угодно.
Или можно вернуть результат $row['online'] и уже потом делать проверку.
Насколько я понимаю, это настройка, которая задает режим сайта вкл/выкл. Если так, то тут функция наверно не к месту, потому что обычно это проделывается один раз.
  • 0
Как часто в горестной разлуке,В моей блуждающей судьбе, ФО, я думал о тебе.


#4 c0ns0l3

c0ns0l3
  • Пользователь
  • 264 сообщений
  • Репутация: 49

Отправлено 31 Август 2013 - 19:45

Уважаемый fedornabilkin, если вы хотите проверить установленный линк с Сервером БД (в данном случаи с mysql) то вы должны проверять в 1ю очередь сам dbh который получается при mysql_connect(mysql_pconnect) он будет null если соединение не установится.

$dbh= mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$dbh) {
    die('Ошибка соединения: ' . mysql_error());
}

Но, если управлять ошибками самого запроса, то опять-же делать через try или просто @mysql_query после чего проверять mysql_error() и на наличие которого выкидывать опять-же таки на ошибку с ее описанием.
  • 0

#5 alex159

alex159
    Topic Starter
  • Пользователь
  • 492 сообщений
  • Репутация: 32

Отправлено 31 Август 2013 - 21:38

$dbh= mysql_connect('localhost', 'mysql_user', 'mysql_password'); if (!$dbh) { die('Ошибка соединения: ' . mysql_error()); }

Извините, а не легче сделать так?
$dbh= mysql_connect('localhost', 'mysql_user', 'mysql_password') or die("Ошибка".. mysql_error()) ;
Если я не прав пожалуйста поправьте.
  • 0

#6 fedornabilkin

fedornabilkin
  • Пользователь
  • 696 сообщений
  • Репутация: 91

Отправлено 01 Сентябрь 2013 - 11:47

Уважаемый fedornabilkin, если вы хотите проверить установленный линк с Сервером БД

А при чем тут это? Соединение с БД проверяется намного выше и, при его отсутствии, останавливается работа скрипта, в связи с бессмысленным его выполнением без коннекта.

Если я не прав пожалуйста поправьте.

Вообще надо было бы уже собраться с силами и изучить какой-нибудь класс для работы с БД, что бы не возникало подобных вопросов по поводу подключения и ошибки.
  • 0
Как часто в горестной разлуке,В моей блуждающей судьбе, ФО, я думал о тебе.


#7 c0ns0l3

c0ns0l3
  • Пользователь
  • 264 сообщений
  • Репутация: 49

Отправлено 01 Сентябрь 2013 - 19:45

Извините, а не легче сделать так?

$dbh= mysql_connect('localhost', 'mysql_user', 'mysql_password') or die("Ошибка".. mysql_error()) ;
Если я не прав пожалуйста поправьте.


Не проще, допустим у тебя сайт работает одновременно с 2мя базами...
И тут с какой-то из баз, с которой ты допустим таскаешь данные по каким-то причинам ( не та, на которой работает сайт) легла, и что ты увидишь? Вызов die() которая положет весь РНР?
  • 0


Оформление форума – IPBSkins.ru