[英]How to stop execution of the script if query does not return any result
在我的页面中,我有多个company_id
。 其中一些在以下查询中未返回任何结果。
我的问题是我应该为他们做什么? 如果什么都没找到,我应该保留代码还是应该停止执行? 如果是,我该怎么做?
<?php
$categories = mysql_query('SELECT distinct(category),id FROM products WHERE company_id = ' . $cid );
while($cat = mysql_fetch_assoc($categories))
{
echo "<a href='#'>" . $cat['category'] . "</a><br>";
}
?>
停止在while循环中执行,使用break语句
就像是
while($cat = mysql_fetch_assoc($categories))
{
if ( $cat['category'] == '' )
break;
echo "<a href='#'>" . $cat['category'] . "</a><br>";
}
请记住,这将立即停止循环。 如果您只想“隐藏”空结果,请尝试这样的操作
while($cat = mysql_fetch_assoc($categories))
{
if ( $cat['category'])
echo "<a href='#'>" . $cat['category'] . "</a><br>";
}
使用BREAK退出while循环。 我很困惑。 如果查询不返回任何内容,那么您就不会循环,对吗?
编辑
听起来您可能正在页面中遍历一组company_id,然后获取每个类别的类别,对吗?
foreach ($list_companies as $cid)
{
LOAD CATEGORIES for $cid
while (have categories)
{
echo link to it
}
}
如果这是正确的,那么休息会让您脱离内心而进入下一家公司,但是同样,如果没有类别,则没有任何休息的机会。
我不鼓励break
循环,您应该在传递到循环之前检查是否有mysql_num_rows()
返回的行。
<?php
if(isset($cid)){
$categories = mysql_query('SELECT distinct(category),id FROM products WHERE company_id = ' . $cid );
if(mysql_num_rows($categories)>=1){
while($cat = mysql_fetch_assoc($categories)){
echo "<a href='#'>" . $cat['category'] . "</a><br>";
}
}
}
?>
始终有效的最简单方法之一是die()函数
if(empty($var)) {
die();
}
或者您可以添加错误消息
die("No results found!");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.