在我的页面中,我有多个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>";
}
?>
答案 0 :(得分:0)
在while循环中停止执行使用break语句
类似
while($cat = mysql_fetch_assoc($categories))
{
if ( $cat['category'] == '' )
break;
echo "<a href='#'>" . $cat['category'] . "</a><br>";
}
请记住,这会立即停止循环。如果你只是想&#34;隐藏&#34;空结果尝试这样的事情
while($cat = mysql_fetch_assoc($categories))
{
if ( $cat['category'])
echo "<a href='#'>" . $cat['category'] . "</a><br>";
}
答案 1 :(得分:0)
使用BREAK退出while循环。我很困惑。如果查询没有返回任何内容,那么你无论如何都不会循环,对吧?
修改强>
听起来你可能正在遍历页面中的一组company_id,然后为每个公司获取类别,对吗?
foreach ($list_companies as $cid)
{
LOAD CATEGORIES for $cid
while (have categories)
{
echo link to it
}
}
如果这是正确的,那么休息会让你离开你的内心,然后进入下一家公司,但是,如果没有类别,那么就没有什么可以突破。
答案 2 :(得分:0)
我不鼓励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>";
}
}
}
?>
答案 3 :(得分:0)
始终有效的最简单方法之一是 die()功能
if(empty($var)) {
die();
}
或者您可以添加错误消息
die("No results found!");