我在mysql之后有一个while命令并给我一行但如果行为空我会得到错误'未定义的变量'代码是:
$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 }?>
给我&#39;来自命令2的第4行的未定义变量&#39;错误&#34; mname&#34; 感谢
答案 0 :(得分:0)
需要定义变量以防止发生通知,否则,仅在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中删除起。