【问题标题】:Insert advertisement between entries from MySQL using PHP使用 PHP 在 MySQL 的条目之间插入广告
【发布时间】:2017-05-29 07:24:08
【问题描述】:

每页将从数据库中选择 10 个条目。如何在 5 个条目后在列表中插入广告块?比如:

1. Lisa      New York        
2. Carl      Los Angeles     
3. Steve     Chicago         
4. Jennifer  Houston         
5. John      New York        

[ ADVERTISEMENT BLOCK ]

6. Paul      Chicago         
7. Andrew    New York       
8. Tom       New York        
9. Nicky     Houston         
10.Alex      Los Angeles    

[ NEXT PAGE ]

PHP 代码是这样的:

if (isset($_GET["page"])) { $page  = $_GET["page"]; } else { $page=1; }; 
$start_from = ($page-1) * $results_per_page;
$sql = "SELECT * FROM tbl ORDER BY ID ASC LIMIT $start_from, ".$results_per_page;
$rs_result = $conn->query($sql); 

while($row = $rs_result->fetch_assoc()) {
?> 
    <ul>
        <li><? echo $row["id"]; ?></li>
        <li><? echo $row["name"]; ?></li>
        <li><? echo $row["city"]; ?></li>
    </ul>
<?php 
}; 

$sql = "SELECT COUNT(ID) AS total FROM tbl;
$result = $conn->query($sql);
$row = $result->fetch_assoc();
$total_pages = ceil($row["total"] / $results_per_page); // calculate total pages with results
  
for ($i=1; $i<=$total_pages; $i++) {  // print links for all pages
            echo "<a href='index.php?page=".$i."'";
            if ($i==$page)  echo " class='curPage'";
            echo ">".$i."</a> "; 
}; 
?>

如何在 5 个条目后展示广告?像这样:

<a href="www.advertisement.com">
<img alt="test" src="test.png">
</a>

【问题讨论】:

  • 该死的,我通常喜欢帮忙,但不喜欢做广告:D :P
  • 但是.. if 语句中的 while 并检查它是否是第 6 行,如果是,则在之前添加广告块? :)

标签: php html mysql database mysqli


【解决方案1】:

给你:

$advertisment_block = ""; //Here define your advertisment

$row_number=0;

while($row = $rs_result->fetch_assoc()) {
    $row_number++;
    echo ' 
        <ul>
            <li>'.$row["id"].'</li>
            <li>'.$row["name"].'</li>
            <li>'.$row["city"].'</li>
        </ul>';

    if(($row_number % 5) == 0) 
        echo $advertisment_block;
};

【讨论】:

  • $advertisment_block 和 $Advertisment_block 不同。它会产生错误。
【解决方案2】:

试试这个:-

$i=0;
while($row = $rs_result->fetch_assoc()) {
if($i==5) { 
 echo "Your Advertisement";
 $i=0; //if you have rows more than 10 and you want to show advertisement block after every fifth row then need to reset $i to 0.
}
?> 
    <ul>
        <li><? echo $row["id"]; ?></li>
        <li><? echo $row["name"]; ?></li>
        <li><? echo $row["city"]; ?></li>
    </ul>
<?php 
$i++;
}; 

【讨论】:

  • 应该可以工作,但也许您想在 if 语句中重新设置 $i,以防万一(例如 20 行,4 个广告)
  • 始终使用口语变量,而不是 $i 或类似的东西。
猜你喜欢
  • 1970-01-01
  • 2013-03-02
  • 1970-01-01
  • 2016-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-27
相关资源
最近更新 更多