Php 如果命令为空,则取消设置while
我在mysql后面有一个while命令,并给我一行,但如果行为空,我会得到错误“Undefined variable”代码:Php 如果命令为空,则取消设置while,php,mysql,recordset,Php,Mysql,Recordset,我在mysql后面有一个while命令,并给我一行,但如果行为空,我会得到错误“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
$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'];
}
这是调用第一个命令的第二个命令:
<?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 }?>
工作
姓名:
达斯特:
从命令2“mname”为第4行提供“未定义变量”错误
谢谢需要定义变量以防止出现通知,否则,只有在
mysql\u fetch\u 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 } ?>
while($mrow=mysql\u fetch\u assoc($m\u list)){?>
工作
姓名:
达斯特:
注意:请尝试重构此代码,这样您就不会使用
mysql.*
函数(改为使用PDO
或mysqli
),因为它们已从PHP7及以后的版本中删除。i确实尝试了while($mrow=mysql.\u fetch\u assoc($m\u list)){?>,但请告诉我这个错误:mysql.\u fetch\u assoc()预期参数1为资源,在…!中为空!如果我想使用mysqli,只需添加一个“i”命令没有其他区别?感谢您的查询返回资源?您可以使用if
将while包装为以检查查询是否成功并返回资源。