команда unset if пуста

У меня есть команда while после mysql, и я выдаю строку, но если строка пуста, я получаю сообщение об ошибке «Undefined variable»:

$m_list = mysql_query("SELECT
t2.name,
t2.group
FROM tbl_m_list t1, tbl_mn_list t2
WHERE t1.user_id = '$uid' AND
t1.name       = t2.name    AND
t1.group  = t2.group" );

while ($mrow = mysql_fetch_assoc($m_list)) {
$mname[] =$mrow['name'];
$group[] =$mrow['group'];
}

и это команда номер 2 для вызова первой команды:

<?php for ($i = 0; $i < count($mname); $i++) {?>
<div >
<div >
<span >job</span>
<span >name:</span>
<div ><?php    echo  $mname[$i] ?>          </div>
<span >daste:</span>
<div ><?php    echo  $group[$i] ?>      </div>
</div>
</div>
<?php }?>

дай мне ‘Undefined variable’ ошибку для строки 4 из команды 2
«Mname» спасибо

-2

Решение

Переменные должны быть определены для предотвращения появления уведомления, в противном случае переменная устанавливается только в том случае, если mysql_fetch_assoc возвращает любые данные.

Основное решение

Перед while цикл, определите их, вот так:

$mname = array();
$group = array();

while ($mrow = mysql_fetch_assoc($m_list)) {
// ...

Лучшее решение

Использовать while цикл вместо другой цикл и хранение данных в двух других переменных. Это более чистое решение, поскольку вы не перебираете данные дважды.

while ($mrow = mysql_fetch_assoc($m_list)) { ?>
<div ><div ><span >job</span>
<span >name:</span>
<div ><?php    echo  $mrow['name'] ?>          </div>
<span >daste:</span>
<div ><?php    echo  $mrow['group'] ?>      </div>
</div></div>
<?php } ?>

Примечание. Попробуйте изменить код, чтобы не использовать mysql_* функции (использовать PDO или же mysqli вместо этого), поскольку они были удалены из PHP7 и далее.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]