如果 mysqli_fetch_assoc 为空而循环 php 则显示一些 html
Display some html if mysqli_fetch_assoc is empty while loop php
我正在使用 while loop
从我想显示的数据库中获取数据,就像没有找到结果一样,结果为 null 或空。我试过将 if/else
与 like: if (empty($jobs)) echo 'nothing found';
一起使用,但没有用。 if(!mysqli_fetch_assoc($jobs))
有效,但如果可用则不显示职位。
循环
<?php while ($job = mysqli_fetch_assoc($jobs)) { ?>
<tr class="custom-table-body-titles">
<td><?php echo h($job['updated_at']); ?></td>
<td>
<a href="#" class="text-dark"><?php echo h($job['title']); ?></a>
</td>
<td>0/<?php echo h($job['required_freelancers']); ?></td>
<td><?php echo h($job['delivery_time']); ?> Days</td>
<td>$<?php echo h($job['budget']); ?></td>
<td>
<a href="job_details.html" class="btn btn-sm btn-primary">Apply</a>
</td>
</tr>
<?php } ?>
在开始循环之前,您必须进行验证以检查是否找到任何结果。假设 $jobs
是由 mysqli_query()
.
返回的 mysqli_result
的实例
if (mysqli_num_rows($jobs) > 0)
{
// your while loop
}
else
{
echo "no jobs found";
}
您应该尽可能将 PHP 和 HTML 分开。
您可以先将所有结果提取到一个数组中,然后再对该数组进行 foreach。
$jobs = $jobs->fetch_all(MYSQLI_ASSOC);
if($jobs) {
foreach ($jobs as $job) {
}
} else {
}
一个很好的问题,但遗憾的是大部分时间都回答不正确。
混合数据库相关代码和 HTML 代码是一种非常糟糕的做法。永远不应该有这样的 while 循环。
相反,应该将数据提取到数组中,
$jobs = [];
while ($row = mysqli_fetch_assoc($jobs)) {
$jobs[] = $row;
}
然后用于输出数据。一旦你有了这个数组,你就可以用它来判断查询是否返回了任何数据:
<?php if ($jobs) { ?>
<?php foreach ($jobs as $job) { ?>
<tr class="custom-table-body-titles">
<td><?php echo h($job['updated_at']); ?></td>
<td>
<a href="#" class="text-dark"><?php echo h($job['title']); ?></a>
</td>
<td>0/<?php echo h($job['required_freelancers']); ?></td>
<td><?php echo h($job['delivery_time']); ?> Days</td>
<td>$<?php echo h($job['budget']); ?></td>
<td>
<a href="job_details.html" class="btn btn-sm btn-primary">Apply</a>
</td>
</tr>
<?php } ?>
<?php } else {?>
no data
<?php } ?>
我正在使用 while loop
从我想显示的数据库中获取数据,就像没有找到结果一样,结果为 null 或空。我试过将 if/else
与 like: if (empty($jobs)) echo 'nothing found';
一起使用,但没有用。 if(!mysqli_fetch_assoc($jobs))
有效,但如果可用则不显示职位。
循环
<?php while ($job = mysqli_fetch_assoc($jobs)) { ?>
<tr class="custom-table-body-titles">
<td><?php echo h($job['updated_at']); ?></td>
<td>
<a href="#" class="text-dark"><?php echo h($job['title']); ?></a>
</td>
<td>0/<?php echo h($job['required_freelancers']); ?></td>
<td><?php echo h($job['delivery_time']); ?> Days</td>
<td>$<?php echo h($job['budget']); ?></td>
<td>
<a href="job_details.html" class="btn btn-sm btn-primary">Apply</a>
</td>
</tr>
<?php } ?>
在开始循环之前,您必须进行验证以检查是否找到任何结果。假设 $jobs
是由 mysqli_query()
.
mysqli_result
的实例
if (mysqli_num_rows($jobs) > 0)
{
// your while loop
}
else
{
echo "no jobs found";
}
您应该尽可能将 PHP 和 HTML 分开。
您可以先将所有结果提取到一个数组中,然后再对该数组进行 foreach。
$jobs = $jobs->fetch_all(MYSQLI_ASSOC);
if($jobs) {
foreach ($jobs as $job) {
}
} else {
}
一个很好的问题,但遗憾的是大部分时间都回答不正确。
混合数据库相关代码和 HTML 代码是一种非常糟糕的做法。永远不应该有这样的 while 循环。
相反,应该将数据提取到数组中,
$jobs = [];
while ($row = mysqli_fetch_assoc($jobs)) {
$jobs[] = $row;
}
然后用于输出数据。一旦你有了这个数组,你就可以用它来判断查询是否返回了任何数据:
<?php if ($jobs) { ?>
<?php foreach ($jobs as $job) { ?>
<tr class="custom-table-body-titles">
<td><?php echo h($job['updated_at']); ?></td>
<td>
<a href="#" class="text-dark"><?php echo h($job['title']); ?></a>
</td>
<td>0/<?php echo h($job['required_freelancers']); ?></td>
<td><?php echo h($job['delivery_time']); ?> Days</td>
<td>$<?php echo h($job['budget']); ?></td>
<td>
<a href="job_details.html" class="btn btn-sm btn-primary">Apply</a>
</td>
</tr>
<?php } ?>
<?php } else {?>
no data
<?php } ?>