【问题标题】:mysqli query for no results do something else do something elsemysqli 查询没有结果 做别的事 做别的事
【发布时间】:2012-09-14 17:02:28
【问题描述】:

我正在运行 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 个广告应该是这张图片,请在此处添加您的广告。 请问有什么帮助吗?

【问题讨论】:

    标签: php mysqli


    【解决方案1】:

    改变这个:

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

    【讨论】:

    • hay Brad 我让它运行了,但我的问题是我在 mysql 中做了一个限制 4,如果表格中没有结果,我需要这个文本“把你的广告放在这里”出现 4 次,如果有两行它应该与这两行相呼应,另外两行应该仍然有“在此处添加您的广告”这个文本对此有什么帮助吗?
    • 啊,我想我现在明白了。您想展示 4 个广告,如果有空位,请用“您的广告在这里”填充?每个空位一个?
    • 布拉德谢谢它工作得很好,但是当我向 mysqli 插入任何行时仍然有一些东西丢失了它再次隐藏“在此处添加广告”这是不对的,它应该变成 2 文本“广告你广告在这里”我更新了我上面的代码,让你看看我做错了什么。谢谢
    • @YousefAltaf,我不明白。您的查询返回了多少行?您希望展示多少?您希望展示多少个“您的广告在这里”?
    • 现在我的表格中有两行,它们即将显示并正常显示,所以我希望将另外两行作为“在这里为您的广告做广告”,现在我得到的是我拥有的两行在我的桌子上,没有别的
    猜你喜欢
    • 1970-01-01
    • 2016-03-18
    • 2014-07-23
    • 2016-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-01
    • 1970-01-01
    相关资源
    最近更新 更多