如果查询不返回任何结果,如何停止执行脚本
问题描述:
在我的页面中,我有多个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>";
}
?>
答
我不会鼓励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>";
}
}
}
?>
答
停在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
}
}
如果这是正确的,那么突破将让你出你的内心,而和到下一个公司,但同样,如果没有分类,然后没有什么打出来的。
答
一个永远奏效的最简单方法是模具()函数
if(empty($var)) {
die();
}
,或者你可以添加一个错误消息
die("No results found!");