3

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つの広告をこの画像にする必要があるため、ここに広告を追加します。これについて何か助けてください。

4

1 に答える 1

3

これを変える:

if($QSM_pro_info->num_rows ==1){

これに:

if ($QSM_pro_info->num_rows > 0) {

問題は、正確に 1 つの結果をチェックしていたことです。あなたが望むのは、ゼロ以上の結果です。

さて、「ここにあなたの広告」を表示する部分で、これを試してください:

for ($x=0; $x<(4 - $QSM_pro_info->num_rows); $x++) {
    echo 'Your ad here'; // or, whatever your ad text is
}

htmlspecialchars()また、壊れた HTML (およびデータ ソースによっては潜在的な XSS 攻撃) を回避するために、HTML 内の変数データの前後で必ず使用してください。

于 2012-09-22T15:58:11.063 に答える