[英]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.