[英]echo inside if else in php
我想在if...else
中使用echo
,如果數據庫中不存在數據,我可以打印“-”,如果數據庫中存在數據,則打印數據。 到目前為止,如果數據庫中不存在數據,我的“-”不會出現。
這是用於在 localhost.php 上打印
<?php
$kata='';
$no=1;
$data = mysqli_query($koneksi,"SELECT msdosen.`IDDOSEN`, `POSITION`,
`COMPANY`, `START`, `END`
FROM trprofessionalhis
INNER JOIN msdosen ON msdosen.IDDOSEN = trprofessionalhis.IDDOSEN
WHERE trprofessionalhis.IDDOSEN ='$id'
ORDER BY trprofessionalhis.`START` DESC");
while($d = mysqli_fetch_array($data)){
?>
<br><?php echo $d['POSITION'];?><br><?php echo $d['COMPANY'];?>
<br><?php echo $d['START'];?>-<?php echo $d['END']?><br>
<?php
if (empty($d['POSITION'])){
echo '-';
}
else{
echo '';
}
}
?>
如果數據庫中不存在數據,我希望 output 打印“-”。
如果您的 SQL 查詢未返回任何結果,則$d
將返回NULL
並且 while 循環將在開始之前結束。 因此,循環中的任何 echo 語句都不會運行。
鑒於此評論中的屏幕截圖,我認為情況就是如此。 這就是為什么您的 if-then 從未按預期運行並且什么也沒顯示的原因:
正如評論中提到的@catcon ,您可以使用mysqli_num_row檢查是否有任何結果。 這樣,當沒有結果時,您仍然可以顯示一些東西:
<?php
$kata='';
$no=1;
$data = mysqli_query($koneksi,"SELECT msdosen.`IDDOSEN`, `POSITION`,
`COMPANY`, `START`, `END`
FROM trprofessionalhis
INNER JOIN msdosen ON msdosen.IDDOSEN = trprofessionalhis.IDDOSEN
WHERE trprofessionalhis.IDDOSEN ='$id'
ORDER BY trprofessionalhis.`START` DESC");
// add this to print "-" if the query returns no result
if (mysqli_num_row($data) <= 0) {
echo '<br> -';
}
?>
<?php while($d = mysqli_fetch_array($data)) { ?>
<br><?php echo $d['POSITION'];?><br><?php echo $d['COMPANY'];?>
<br><?php echo $d['START'];?>-<?php echo $d['END']?>
<?php } ?>
您可以使用三元運算符。 這是示例:
echo empty($d['POSITION'])? $d['POSITION']: '-';
如果您使用的是 PHP 7+ 版本,還有更短的方法:
echo $d['POSITION']?? '-';
更多關於三元運算符的例子。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.