簡體   English   中英

如果滿足條件,如何在函數內部運行函數

[英]How to run a function inside a function if a condition is met


請我一直在嘗試創建一個函數,該函數將查詢數據庫,從表中選擇,如果行數不等於6,則從表中選擇一行並重復(或重復)直到行數為等於6。我已經在StackOverflow中搜索了此函數,但是沒有找到任何結果。 如果您有與此類似的鏈接,請在此處發布,我會嘗試一下。

這是我的代碼:

//List All active adverts
function showActiveAdverts()
{

    $status = 1;
    //Build final queries.
    $query = mysql_query("SELECT * FROM table WHERE 
             status = '".mysql_real_escape_string($status)."' ORDER BY rand() LIMIT 6") or die(mysql_error());

    $count = mysql_num_rows($query);
    $row = mysql_fetch_assoc($query);

# My question here, check if the $count >= 1 && $count != 6, then do getDefaultBannner() and repeat it until it runs for 6 times.
    if($count >= 1){ 
        do{ 
            $list[] = $row['id']; 
        }while($row = mysql_fetch_assoc($query));
        return $list;
    }
    else{ return FALSE; }
    }

這是getDefaultBannner()的代碼

function getDefaultBannner()
{
    $status = 6;
    $query = mysql_query("SELECT id FROM table WHERE status = '".mysql_real_escape_string($status)."' ") 
            or die(mysql_error());

    $count = mysql_num_rows($query);
    $row = mysql_fetch_assoc($query);


    if($count >= 1){ 
        do{ 
            $list[] = $row['id']; 
        }while($row = mysql_fetch_assoc($query));
        return $list;
    }
    else{ return FALSE; }
}

提前致謝!

您可以這樣重寫代碼

//List All active adverts

$query = mysql_query("SELECT * FROM table WHERE 
             status = '".mysql_real_escape_string($status)."' ORDER BY rand() LIMIT 6") or die(mysql_error());

$count = mysql_num_rows($query);

if($count >= 1 && $count != 6)
  $list = getDefaultBannner();
else
  $list = showActiveAdverts($query);

function showActiveAdverts($query)
{

    $status = 1;
    //Build final queries.

    $row = mysql_fetch_assoc($query);

    if($count >= 1){ 
        do{ 
            $list[] = $row['id']; 
        }while($row = mysql_fetch_assoc($query));
        return $list;
    }
    else{ return FALSE; }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM