0

DB をフェッチすると結果が得られ、DB から価格を取得するところまですべてが機能しますが、これも機能しますが、実際に必要なのは、価格が 0 よりも 0 を返した場合、「0」を「POD」に置き換える必要があることです。 " 代わりは。

どんな助けでも大歓迎です。

ここに私のクエリコードがあります:

 $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>";
4

4 に答える 4

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 内で条件を処理しないのはなぜでしょうか?

于 2013-07-08T20:20:56.720 に答える
0

いくつかのアイデアが思い浮かびますが、そのうちの 1 つはternary演算子です。

$price = ($row[price] == 0 ? 'P.O.D' : '£ ' . $row[price]);
于 2013-07-08T20:19:51.593 に答える
0

試す:

$price = (empty($row[price]) ? "P.O.D" : "£ " . $row[price]);
于 2013-07-08T20:20:14.257 に答える