2011-11-22 110 views
0

在我的页面中,我有多个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

我不会鼓励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>"; 
     } 
    } 
} 
?> 
0

停在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>"; 
} 
0

使用BREAK走出while循环。我很困惑。如果查询没有返回任何内容,反正你也不会循环,对吗?

编辑

这听起来像你可能通过一组COMPANY_ID在你的网页被循环,然后让类别各的吧?

foreach ($list_companies as $cid) 
{ 
    LOAD CATEGORIES for $cid 
    while (have categories) 
    { 
    echo link to it 
    } 
} 

如果这是正确的,那么突破将让你出你的内心,而和到下一个公司,但同样,如果没有分类,然后没有什么打出来的。

0

一个永远奏效的最简单方法是模具()函数

if(empty($var)) { 
    die(); 
} 

,或者你可以添加一个错误消息

die("No results found!"); 
相关问题