簡體   English   中英

如果在 php 中,則在內部回顯

[英]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 從未按預期運行並且什么也沒顯示的原因:

https://i.ibb.co/5kfzXpP/Contoh.png

正如評論中提到的@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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM