2011-11-22 64 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!"); 
相關問題