2017-07-01 4 views
0

誰かがこのコードを構成する最良の方法を手伝ってくれることを願っています。クエリが結果を返すときのみ条件付きでPHPコードを実行するには?

私はボランティアとしてオイル・クラブを運営していますが、特定のオイル・タイプの見積もりがない場合は、コードの下の照会で空変数が使用されているためページが失敗します。

クエリで結果が返されない場合は、理想的には$win_supplier_red_id = 0にしたいと思いますが、コードをキャッチする最良の方法と、コード内の最適な場所はわかりません。

$sql2a= "Select Quote_id from tbl_quote where (select min(quote_price) as best_red from tbl_quote where fuel_type_id =2 AND timestamp > date_sub(NOW(), INTERVAL 7 DAY) AND quote_price > 10) = quote_price AND timestamp > date_sub(NOW(), INTERVAL 7 DAY) Order by timestamp Limit 1"; 
$stmt2a = $db->prepare($sql2a); 
$stmt2a->execute(); 
$res2a = $stmt2a->fetchObject(); 
$best_red_quote = $res2a->Quote_id; 
$sql2= "SELECT qt.quote_id, ft.fuel_type_id, ft.fuel_name, st.supplier_id, st.company_name as company_name, st.email, qt.supplier_id, qt.timestamp, qt.fuel_type_id, min(qt.quote_price) AS best_red 
FROM tbl_quote qt 
INNER JOIN `tbl_suppliers` st ON qt.supplier_id = st.supplier_id 
INNER JOIN `tbl_fuel-type` ft ON qt.fuel_type_id = ft.fuel_type_id 
WHERE qt.Quote_id = $best_red_quote 
Order by timestamp"; 
$stmt2 = $db->prepare($sql2); 
$stmt2->execute(); 
$res2 = $stmt2->fetchObject(); 
$best_red = $res2->best_red; 
$winning_supplier_red = $res2->company_name; 
$win_supplier_red_id = $res2->supplier_id; 
+1

もし(数(結果)> 0){何かをする}他{何かを行う} – Doug

+0

あなたのような質問を避ける必要があることに注意してください「への最善の方法は何であるの...」にスタックオーバーフロー。代わりに、可能な解決策が存在し、それぞれの賛否両論が何であるかを尋ねることができます。通常、問題の究極の解決策はなく、どちらがあなたに最も適しているかを判断する必要があります。あなたのアプリケーションとその要件についてはほとんど知りませんので、そのような質問に答えるのは難しいです。 問題の解決方法については、このPHPのマニュアルページの例2を参照してください。http://us1.php.net/manual/en/pdostatement.rowcount.php – Lukas

答えて

0
$stmt2 = $db->prepare($sql2); 
$stmt2->execute(); 
$res2 = $stmt2->fetchObject(); 

if (is_object($res2)) { 
    $best_red = $res2->best_red; 
    $winning_supplier_red = $res2->company_name; 
    $win_supplier_red_id = isset($res2->supplier_id) ? $res2->supplier_id : 0; 
} else { 
    $best_red = ''; 
    $winning_supplier_red = ''; 
    $win_supplier_red_id = 0; 
} 
+0

ありがとう、私は最初のクエリの後にIf句を挿入し、2番目のクエリをIf trueセクションに配置しますか? – ruraldev

+0

はい、そうだと思います – Cyril

関連する問題