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 раз, меняя значения(их я введу, когда заработает функция).
уровень ошибок выставлен в полном коде. В данном случае нужна мне именно функция, иначе придётся код, который видите вначале дублировать 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 БД.
надо просто $db не указывать в запросе! Она лишняя, когда работаешь с 1 БД.