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
相关产品推荐
相关产品推荐

