我正在运行mysqli查询。
这是我的代码
<?php
$SM_pro_info="SELECT * FROM special_marketing_ads ORDER BY id desc LIMIT 4";
$QSM_pro_info = $db->query($SM_pro_info)or die($db->error);
if($QSM_pro_info->num_rows > 0){
while($SM_pro=$QSM_pro_info->fetch_object()){
?>
<table width="208" border="0">
<tr>
<td width="129" height="35" align="right"><span style="color:#361800; font-size:14px; font-weight:bold;"><?php echo $SM_pro->pro_title; ?></span></td>
<td width="69" rowspan="2" align="center"><a rel="lightbox" href="includes/Cpanel/projectImages//images.jpg" ><img src="<?php echo $SM_pro->image_1; ?>" alt="" width="60" height="60" border="0" /></a></td>
</tr>
<tr align="right">
<td><span style="color:#361800; font-size:14px; font-weight:bold;">الغرض</span> : <span style="color:#da6e19; font-size:15px; font-weight:bold;"><?php echo $SM_pro->pro_purpose; ?></span></td>
</tr>
</table>
<?php
}
}else{
for ($x=0; $x<(4 - $QSM_pro_info->num_rows); $x++) {
echo 'Your ad here'; // or, whatever your ad text is
}
}
?>
</div>
现在我想要做的就是如果有任何结果来自mysqli回应它,如果没有结果它应该 回显一个在此处添加广告的图片。关键是我有4个广告,所以如果在mysqli行中有1个广告,其他的是空的,那么我希望它能回应这个单一的广告,其他3个广告应该是这个图片在这里添加您的广告。 对此有任何帮助吗?
答案 0 :(得分:3)
改变这个:
if($QSM_pro_info->num_rows ==1){
对此:
if ($QSM_pro_info->num_rows > 0) {
问题是您正在检查一个结果。你想要的不仅仅是零结果。
现在,在您在此处展示“广告”的部分,请尝试以下操作:
for ($x=0; $x<(4 - $QSM_pro_info->num_rows); $x++) {
echo 'Your ad here'; // or, whatever your ad text is
}
还要确保在HTML中的变量数据周围使用htmlspecialchars()
,以避免HTML(以及潜在的XSS攻击,具体取决于您的数据源)。