Вот мой код:
<?php
error_reporting( E_ALL & E_STRICT );
include ("blocks/db.php");
session_start();
if (!isset($_SESSION['username']))
{
header("Location: enter.php?sit=1");
}
$login = $_SESSION['username'];
$get_sql_people = mysql_query("SELECT * FROM peoples WHERE login = '$login' ",$db) or die (mysql_error());
$arr_sql_people = mysql_fetch_array($get_sql_people);
//делаем массив из рефералов пользователя и считаем их количество
$arr = explode(",",$arr_sql_people[9]);
///////////////////////////////////Вопрос: Не влияет ли этот $count на следубщий(смотрите ниже)?
$count = count($arr);
//////////////////////////////////
echo 'У Вас '.$count.' приглашенных';
//делаем таблицу рефералов:
$width = 1000;
echo '<table width="'.$width.'" border="0">
<td><center>'.$arr_sql_people[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="referals.php?login0='.$arr[$i].'">'.$arr[$i].'</a></center></td>';
$i++;
}
echo'</tr>
</table>';
//проверка, если нажали на чей-то логин делаем массив ил рефералов этого логина
$z = 0;
while ($z<=10)
{
$z++;
$a = $z-1;
$ref = $_GET['login'.$a.''];
$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);
$arr = explode(",",$arr_sql_ref[9]);
///////////////////Как я понял ошибка тут, потому что даже если в поле ничего нету - выдаёт 1, если есть, выдаёт правильное количество
$count = count($arr);
//////////////////////////////////////////////
//если есть рефералы у этого логина выводим их в таблице
if ($count>0)
{
$width = 1000;
echo '<table width="'.$width.'" border="0">
<td><center>'.$arr_sql_ref[1].'</center></td>
</tr>';
if (isset($_GET['login'.$a.''])){
echo 'У пользователся '.$arr_sql_ref[1].' '.$count. ' Приглашенных<br>';}
echo '</table>';
echo '<table width="'.$width.'" border="0">
<tr>';
$i = 0;
While ($i<$count)
{
echo '<td width = "'.$width/$count.'"><center>';
echo '<a href="'.$_SERVER['REQUEST_URI'].'&login'.$z.'='.$arr[$i].'">'.$arr[$i].'</a></center></td>';
$i++;
}
}
elseif ($count=0)
{
$b ="У этого пользователя рефералов нет";
}
echo'</tr>
</table>';
}
echo $b;
echo '<br>'.$_SERVER['REQUEST_URI'];
?>
Сама проблема в том, что функция count в пустой строке выдаёт 1. я указал в самом коде где это.
Помогите пожалйста Всем кто поможет +2 )
Вот можете видеть на картинке, что рефералов нет, а пишет 1
Спустя 6 минут, 8 секунд (20.03.2011 - 18:54) Lenarfate написал(а):
количество записей проще посчитать ф-ей mysql_num_rows
Спустя 1 минута, 51 секунда (20.03.2011 - 18:56) planetary написал(а):
я каунтом привык(count)
Спустя 3 минуты, 44 секунды (20.03.2011 - 19:00) Lenarfate написал(а):
Цитата |
я каунтом привык(count) |
тогда мучайся с ним)
Спустя 7 минут, 18 секунд (20.03.2011 - 19:07) planetary написал(а):
НУ вам я могу только минус поставить. если не видите ошибки в коде, продолжаю ждать ответа
Спустя 2 минуты, 27 секунд (20.03.2011 - 19:10) inpost написал(а):
planetary
! |
inpost |
Спустя 16 секунд (20.03.2011 - 19:10) Lenarfate написал(а):
я вижу, потому предлагаю тебе более нормальный подход
Спустя 34 секунды (20.03.2011 - 19:10) gidrosoldat написал(а):
planetary
после:
сделай :
ситуация сразу проясниться.
после:
$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);
$arr = explode(",",$arr_sql_ref[9]);
сделай :
var_dump($arr);
ситуация сразу проясниться.
Спустя 1 минута, 29 секунд (20.03.2011 - 19:12) inpost написал(а):
$arr = - инициализация переменной. Ты её создал, она существует в еденичном варианте.
COUNT - считает количество переменных, ты создал одну, она одна и существует!
COUNT - считает количество переменных, ты создал одну, она одна и существует!
Спустя 3 минуты, 18 секунд (20.03.2011 - 19:15) tomash написал(а):
в таблице peoples все пользователи , даже те у кого нет рефералов? вот там и получается count>0. кстати elseif ($count=0) неверно, вы же сравниваете, а не присваеваете
Спустя 14 часов, 40 минут, 40 секунд (21.03.2011 - 09:56) linker написал(а):
mysql_num_rows() и никакой тут count() не подходит. ТС, тебе правильно сразу сказали, а ты в минуса полез вместо того чтобы принять правильный совет.
Спустя 10 часов, 10 минут, 32 секунды (21.03.2011 - 20:06) planetary написал(а):
mysql_num_rows() тоже не подходит
Спустя 42 секунды (21.03.2011 - 20:07) planetary написал(а):
он считает количество строк в таблице, а мне нужно количество ячеек в массиве
Спустя 11 минут, 13 секунд (21.03.2011 - 20:18) planetary написал(а):
спринципе этот вопрос я решил. Сразу возник другой. Он описан в этой теме: http://phpforum.ru/index.php?act=ST&f=106&t=42347