在php数据库中,如果图像不可用,则隐藏损坏的图像

kzmpq1sx  于 2021-06-18  发布在  Mysql
关注(0)|答案(3)|浏览(293)

我有一个php查询,如果数据库中没有图像数据,我不想显示损坏的图像

$sql = "SELECT * FROM Candidates c1 LEFT JOIN Parties p1 on p1.Id = 
c1.CurrentParty where c1.Id = 1 ";
$result = $conn->query($sql);

<div class="candidates">
<h5>Candidates for 2019 Vice-President Elections</h5>
<table class="table-bordered table">
<tr>
<th>Candidate Name</th>
<th>Party Name</th>
<th>Party Symbol</th>
<th>Candidate Image</th>
</tr>
<?php
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
?>
<tr>
<td><?php echo $row["CandidateName"]; ?></td>
<td><?php echo $row["PartyName"]; ?></td>
<td><img src="<?php echo $row["PartySymbol"]; ?>" width="75" height="50" />
</td>
<td><img src="<?php echo $row["Photo"]; ?>" width="75" height="50" /></td>
</tr>
<?php }}?>
</table>
</div>

请帮帮我!谢谢

olhwl3o2

olhwl3o21#

使用以下代码:

<td><?php echo ($row["PartySymbol"] != "")? '<img src='.$row["PartySymbol"].' width="75" height="50" />' : ''; ?> </td>

<td><?php echo ($row["Photo"] != "")? '<img src='.$row["Photo"].' width="75" height="50" />' : ''; ?></td>
0md85ypi

0md85ypi2#

欢迎使用stackoverflow,请尝试此代码(假设我对你问题的理解是正确的)。

$sql = "SELECT * FROM Candidates c1 LEFT JOIN Parties p1 on p1.Id = 
c1.CurrentParty where c1.Id = 1 ";
$result = $conn->query($sql);

<div class="candidates">
    <h5>Candidates for 2019 Vice-President Elections</h5>
    <table class="table-bordered table">
        <tr>
            <th>Candidate Name</th>
            <th>Party Name</th>
            <th>Party Symbol</th>
            <th>Candidate Image</th>
        </tr>
<?php
        if ($result->num_rows > 0) :
            while ($row = $result->fetch_assoc()) :
?>
                <tr>
                    <td><?= $row["CandidateName"]; ?></td>
                    <td><?= $row["PartyName"]; ?></td>
                    <td>
                        <img src="<?= $row["PartySymbol"]; ?>" width="75" height="50" />
                    </td>
                    <td>
                        <?php if($row["Photo"]): ?>
                            <img src="<?= $row["Photo"]; ?>" width="75" height="50" />
                        <?php endif; ?>
                    </td>
                </tr>
<?php 
            endwhile;
        endif;
?>
    </table>
</div>

我改进了两件事,请检查一下:
而不是使用 <?php echo $var; ?> ,请使用 <?= $var; ?> 另外,尽量避免 <? if() { 以及 <? } ?> ,尝试使用 <? if (): 以及 <? endif; ?> . 它将使代码更易于阅读。
此外,您还可以使用html onerror 属性。如果在src中找不到映像,这将在回退时执行js。
参考文献:
php短标记是否可以使用?
如何使用img元素的onerror属性

yzxexxkh

yzxexxkh3#

你可以用 onerror 属性。

<img src="<?php echo $row["Photo"]; ?>" width="75" height="50" onerror="this.style.display='none';" />

相关问题