[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как обьявить и вызвать функцию? Не получается(
planetary
Всем привет, ни разу не пользовался обьявление функции. Пробую так:
function ref(){
$ref = $_GET['login2'];
$get_sql_ref = mysql_query("SELECT * FROM peoples WHERE login = '$ref'",$db) or die (mysql_error());
$arr_sql_ref = mysql_fetch_array($get_sql_ref);
if (isset($_GET['login2']) && $arr_sql_ref[9]=='')
{
$b ="У этого пользователя рефералов нет";
echo $b;
}
elseif (isset($_GET['login2']))
{
$width = 500;
$arr = explode(",",$arr_sql_ref[9]);
$count = count($arr);
echo 'У Вас '.$count.' приглашенных';
//делаем таблицу рефералов:
$width = 500;
echo '<table width="'.$width.'" border="0">
<td><center>'
.$arr_sql_ref[1].'</center></td>
</tr>
</table>'
;
echo '<table width="'.$width.'" border="0">
<tr>'
;
$i = 0;
While ($i<$count)
{
echo '<td width = "'.$width/$count.'"><center><a href="'.preg_replace("#&login4#", "", "$string").'&login3='.$arr[$i].'">'.$arr[$i].'</a></center></td>';
$i++;
}
echo'</tr>
</table>'
;
}

}

ref();

В итоге не работает. Где ошибка и как правильно обьявлять и вызывать функцию?
Всем, кто поможет +1 =)



Спустя 7 минут, 39 секунд (26.03.2011 - 15:40) neadekvat написал(а):
Интересно, а где же у вас объявляются все те переменные, которые используются в функции? Ну, скажем, _GET - понятно. А остальное откуда? Если они объявляются за пределами функции - то в теле самой функции они не видны. И это в каждом учебнике по сто раз повторяется.
Чтобы они были доступны, надо их либо передать функцию, либо объявить их глобальными.

Спустя 11 минут, 5 секунд (26.03.2011 - 15:51) alex12060 написал(а):
Меняй логику, тут фиг пойми что на фиг пойми чем.

Спустя 13 минут, 18 секунд (26.03.2011 - 16:04) planetary написал(а):
Цитата (neadekvat @ 26.03.2011 - 12:40)
Интересно, а где же у вас объявляются все те переменные, которые используются в функции? Ну, скажем, _GET - понятно. А остальное откуда? Если они объявляются за пределами функции - то в теле самой функции они не видны. И это в каждом учебнике по сто раз повторяется.
Чтобы они были доступны, надо их либо передать функцию, либо объявить их глобальными.

Вот так тоже не катит:

ref($ref,$get_sql_ref,$arr_sql_ref)

Спустя 49 секунд (26.03.2011 - 16:05) planetary написал(а):
Цитата (alex12060 @ 26.03.2011 - 12:51)
Меняй логику, тут фиг пойми что на фиг пойми чем.

а что с логикой не так?

Спустя 1 минута, 14 секунд (26.03.2011 - 16:06) neadekvat написал(а):
planetary, выставьте уровень ошибок E_ALL, а также скажите, что ожидаете, а что происходит.

Спустя 5 минут, 53 секунды (26.03.2011 - 16:12) planetary написал(а):
я дал только часть кода, который нужно занести в функцию, а затем вызвать.

Спустя 7 минут, 56 секунд (26.03.2011 - 16:20) neadekvat написал(а):
Цитата (planetary @ 26.03.2011 - 16:12)
я дал только часть кода, который нужно занести в функцию, а затем вызвать.

Это ответы на мои вопросы?..

Спустя 44 секунды (26.03.2011 - 16:21) inpost написал(а):
function lala ($var)
{
$var += 10;
return $var;
}
$num = 1;
$num = lala($num);
echo $num;

Спустя 7 минут, 32 секунды (26.03.2011 - 16:29) ZSH написал(а):
Цитата
While ($i<$count)
{
echo '<td width = "'.$width/$count.'"><center><a href="'.preg_replace("#&login4#", "", "$string").'&login3='.$arr[$i].'">'.$arr[$i].'</a></center></td>';
$i++;
}

никогда не выполнится $i = 0, и полюбому меньше чем $count

Спустя 1 минута, 52 секунды (26.03.2011 - 16:30) neadekvat написал(а):
Цитата (ZSH @ 26.03.2011 - 16:29)
никогда не выполнится $i = 0, и полюбому меньше чем $count

И почему не выполнится, если условие положительно?

Спустя 28 секунд (26.03.2011 - 16:31) planetary написал(а):
neadekvat
уровень ошибок выставлен в полном коде. В данном случае нужна мне именно функция, иначе придётся код, который видите вначале дублировать 10 раз, меняя значения(их я введу, когда заработает функция).

Спустя 3 минуты, 13 секунд (26.03.2011 - 16:34) ZSH написал(а):
echo $arr_sql_ref[9];


Цитата
никогда не выполнится $i = 0, и полюбому меньше чем $count

не досмотрел

Спустя 13 минут, 18 секунд (26.03.2011 - 16:47) planetary написал(а):
Вот так доделал: Теперь не известных функции переменных нету:
Почему не работает?
function ref(){
$string = $_SERVER['REQUEST_URI'];
$ref = $_GET['login2'];
$get_sql_ref = mysql_query("SELECT * FROM peoples WHERE login = '$ref'",$db) or die (mysql_error());
$arr_sql_ref = mysql_fetch_array($get_sql_ref);
if (isset($_GET['login2']) && $arr_sql_ref[9]=='')
{
$b ="У этого пользователя рефералов нет";
echo $b;
}
elseif (isset($_GET['login2']))
{
$width = 500;
$arr = explode(",",$arr_sql_ref[9]);
$count = count($arr);
echo 'У Вас '.$count.' приглашенных';
//делаем таблицу рефералов:
$width = 500;
echo '<table width="'.$width.'" border="0">
<td><center>'
.$arr_sql_ref[1].'</center></td>
</tr>
</table>'
;
echo '<table width="'.$width.'" border="0">
<tr>'
;

$i = 0;
While ($i<$count)
{
echo '<td width = "'.$width/$count.'"><center><a href="'.preg_replace("#&login4#", "", "$string").'&login3='.$arr[$i].'">'.$arr[$i].'</a></center></td>';
$i++;
}
echo'</tr>
</table>'
;
}
}

ref();

Спустя 8 минут, 23 секунды (26.03.2011 - 16:56) planetary написал(а):
Всё, я нашел. Нужно было базу данных $db подключить к функции ref($db);

Спустя 26 минут, 15 секунд (26.03.2011 - 17:22) inpost написал(а):
planetary
надо просто $db не указывать в запросе! Она лишняя, когда работаешь с 1 БД.
Быстрый ответ:

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