php – 没有结果的mysqli查询做别的事情

我正在运行 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个广告应该是这个图片在这里添加您的广告.
请帮忙吗?

解决方法

改变这个:

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攻击,具体取决于您的数据源).

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...