0

これはばかげた質問だと思いますが、わかりません。

データベースに最小限の回数 ping を実行する必要がある php ファイルがあります。ping からの同じデータを使用する 2 つの関数があり、それらの関数を 1 つの関数内で呼び出そうとしています。

各関数は mysql クエリの結果をループし、さまざまな条件をチェックします。条件が満たされた場合、別の関数を呼び出します。問題は、最初の関数の実行が終了すると、2 番目の関数が実行されないことです。

助けてください。

function gather_info(){
$cash_request = check_user_cash_on_hand();
if($cash_request != false){
    check_for_overpay($cash_request);
    check_for_sabotage($cash_request);
}
}


function check_for_overpay($cash_requests){
if(mysql_num_rows($cash_requests) > 0){
    $days_possible_amount = get_days_ads_amount();
    if($days_possible_amount != false){
        $first_bucket = 1/3 * $days_possible_amount;
        $second_bucket = 2/3 * $days_possible_amount;
        while($row = mysql_fetch_assoc($cash_requests)){
            $cash_id = $row["cash_id"];
            $cash_request = $row["CASH"];


            if($cash_request <= $first_bucket){
                echo "I'm in one";



            }else if($cash_request > $first_bucket && $cash_request <= $second_bucket){
                echo "I'm in two";

            }else if($cash_request > $second_bucket){
                notify_admin_of_suspicious_amount($row, "not_possible");

            }
        }
    }   
}   

}


/* CHECKS IF SUM OF CASH REQUESTS PER USER GREATER THAN 5 and LESS THAN OR EQUAL TO HIS EARNED AMOUNT */
function check_for_sabotage($cash_request){
if(mysql_num_rows($cash_request) > 0){
    while($row = mysql_fetch_array($cash_request)){
        $requested_cash = $row["CASH"];
        $available_cash = $row["cash_amount"];

        if($requested_cash > 5 && $requested_cash <= $available_cash){
            echo "you got me";
        }else{
            notify_admin_of_suspicious_amount($row, "not_enough");
        }
    }
}   
}

function notify_admin_of_suspicious_amount($row, $type){

echo "suspicious";


}

基本的に、check_for_overpay が終了するとスクリプトは停止し、check_for_sabotage は呼び出されません。助言がありますか?

4

1 に答える 1

0

mysql_num_rows()関数内で呼び出していますcheck_for_overpay()。必要な接続 はmysql_connect()、関数の変数スコープの外にある可能性があります。これは、関数が渡されておらず、接続を作成する関数がその関数内で呼び出されていないためです。

mysql_*関数は PHP 5.5 で非推奨になったことにも注意してください。MySQLi または PDO を使用する必要があります。

于 2013-06-12T00:27:05.710 に答える