У меня есть команда 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» спасибо
Переменные должны быть определены для предотвращения появления уведомления, в противном случае переменная устанавливается только в том случае, если 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 и далее.
Других решений пока нет …