You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP实现MySQL查询结果中Price为0时显示Free的方法

解决MySQL数据展示中Price为0时显示“Free”的问题

嘿,作为PHP新手能写出这样的代码已经很棒啦!其实你已经用到了正确的思路——三元运算符,只要把这个逻辑套用到price字段上就行。

你可以把输出price的部分改成一个三元判断:当$row['price']等于0时显示Free,否则就显示原数值。

方案一:单独定义变量处理(可读性更强)

修改后的完整代码如下:

<?php 
while ($row = mysqli_fetch_array($query)) { 
    $amount = $row['amount'] == 0 ? '' : number_format($row['amount']);
    // 新增对price的处理逻辑
    $priceDisplay = $row['price'] == 0 ? 'Free' : $row['price'];
    echo '<tr> 
            <td>'.$row['id'].'</td> 
            <td>'.$row['event'].'</td> 
            <td>'.$priceDisplay.'</td> 
            <td>'.$row['address'].'</td> 
            <td>'.$row['info'].'</td> 
            <td>'.$row['contact'].'</td> 
          </tr>'; 
}
?>

方案二:直接嵌入echo语句(更简洁)

如果不想单独定义变量,也可以把判断逻辑直接写在输出语句里:

<?php 
while ($row = mysqli_fetch_array($query)) { 
    $amount = $row['amount'] == 0 ? '' : number_format($row['amount']);
    echo '<tr> 
            <td>'.$row['id'].'</td> 
            <td>'.$row['event'].'</td> 
            <td>'.($row['price'] == 0 ? 'Free' : $row['price']).'</td> 
            <td>'.$row['address'].'</td> 
            <td>'.$row['info'].'</td> 
            <td>'.$row['contact'].'</td> 
          </tr>'; 
}
?>

简单说下逻辑:三元运算符的格式是条件 ? 条件成立时的值 : 条件不成立时的值,这里就是判断price是否为0,满足条件就输出Free,不满足就输出原本的price数值,完全贴合你的需求~

内容的提问来源于stack exchange,提问作者SoupDuck

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:43:30