php
  • mysql
  • 2013-07-08 42 views 0 likes 
    0

    獲取數據庫時,我得到的結果和一切正常,我從數據庫中獲得價格,這也是有效的,但我真正需要的是如果價格返回0比「0」代替「POD」。從數據庫返回0時替換獲取的結果

    任何幫助表示讚賞。

    這裏是我的查詢代碼:

    $samples = "SELECT * FROM materials, category_price WHERE materials.type = :cat AND materials.supplier = '$supplier' AND materials.category_id = category_price.category_id"; 
    $res = $db->prepare($samples); 
    $res->execute(array(':cat' => $category)); 
    $count = $res->rowCount(); 
    if($count > 0) 
    echo " 
    <section class=\"border mar_t_40\"> 
    "; 
    while ($row = $res -> fetch()){ 
        $postimggranite = $row[image]; 
        $postidgranite = $row[id]; 
        $postname = $row[mat_name]; 
        $folder = $row[type]; 
        $folder = strtolower($folder); 
        $supplier = strtolower($supplier); 
        $category_id = $row[category_id]; 
        $price = ("£ ".$row[price]); 
    
    
    print<<<END 
    <span class="grid white_back mar_l_30"> 
    <h3>$price</h3> 
    <a class="fancybox" href="$img_path/$folder/$supplier/large/$postimggranite" rel="group[$postidgranite]" title="$postname"><img alt="$row[name]" src="$img_path/$folder/$supplier/small/$postimggranite" width="100" height="100">$postname</a> 
    </span> 
    END; 
    
    } 
    echo "<div class=\"clearfloat\"></div></section>"; 
    
    +0

    那麼你是如何試圖做到這一點?你在尋找一個數據庫查詢解決方案還是一個PHP代碼解決方案? –

    回答

    3

    this question

    這是你正在尋找的表達。

    $price = ($row[price] === 0) ? "P.O.D." : ("£ ".$row[price]); 
    

    編輯:附註:我用=== 0,因爲在this question描述的問題。

    +0

    的作品。甜蜜,我的錯誤是我一直在放「!」代替 」?」。 – AlexB

    0

    一些想法浮現在腦海中,一個是ternary操作:

    $price = ($row[price] == 0 ? 'P.O.D' : '£ ' . $row[price]); 
    
    0

    嘗試:

    $price = (empty($row[price]) ? "P.O.D" : "£ " . $row[price]); 
    
    2

    您可以將查詢更改爲類似:

    SELECT some_fields, IF(price=0, 'P.O.D', price) AS price FROM materials, category_price WHERE materials.type = :cat AND materials.supplier = '$supplier' AND materials.category_id = category_price.category_id 
    

    但爲什麼不處理PHP內的條件?

    相關問題