user3177012
user3177012

Reputation: 691

PHP Show Div Amongst Other Divs

I'm creating an articles wesbite and want to show a grid of 8 articles with an advert placed somwhere within that grid using PHP. So it should look like (For Example):

[ Article ][ Article ][ Article ]
[ Article ][ Article ][ ADVERTS ]
[ Article ][ Article ][ Article ]

So the PHP code I have is:

$get_article_sql = "SELECT * FROM articles ORDER BY added DESC LIMIT 8";
$get_article_res = mysqli_query($con, $get_article_sql);
while($article = mysqli_fetch_assoc($get_article_res)){
    $article_id = $article["id"];
    etc...

    $list_articles .= "


    <div class=\"selectArticle selectArticleClear\">
        <a href=\"article.php?id=$article_id&title=$article_url_title\">
            <div class=\"selectArticleImage\">
                <img class=\"selectArticleImage\" src=\"images/$article_year/$article_id$article_photo\" alt=\"$article_alt\" />
                <div class=\"selectArticleCover\"></div>
            </div>
        </a>
        <div class=\"selectArticleTitle\"><a href=\"article.php?id=$article_id&title=$article_url_title\">$article_title</a></div>
        <div class=\"selectArticleText\">$article_article...<br>| ... <a href=\"article.php?id=$article_id&title=$article_url_title\">Read On</a> &raquo&raquo;</div>
    </div>

    ";
}

I then have my Advert:

$advert = "<div class="advert">ADVERT CODE</div>";

How do I place the $advert inside the $list_articles string at position 6 for example?

Upvotes: 0

Views: 50

Answers (3)

Carlo Ricci
Carlo Ricci

Reputation: 26

You could use a counter like this :

 $i=0;
 $advert = "<div class="advert">ADVERT CODE</div>";   
    while($article = mysqli_fetch_assoc($get_article_res)){
        $article_id = $article["id"];

        if($i==5){
           $list_articles .=$advert;
        }
        $list_articles .= "

        <div class=\"selectArticle selectArticleClear\">
           <a href=\"article.php?id=$article_id&title=$article_url_title\">
                <div class=\"selectArticleImage\">
                    <img class=\"selectArticleImage\" src=\"images/$article_year/$article_id$article_photo\" alt=\"$article_alt\" />
                    <div class=\"selectArticleCover\"></div>
               </div>
            </a>
            <div class=\"selectArticleTitle\"><a href=\"article.php?id=$article_id&title=$article_url_title\">$article_title</a></div>
            <div class=\"selectArticleText\">$article_article...<br>| ... <a href=\"article.php?id=$article_id&title=$article_url_title\">Read On</a> &raquo&raquo;</div>
        </div>

        ";


       $i++;
    }

Upvotes: -1

Aleksei Matiushkin
Aleksei Matiushkin

Reputation: 121000

Count 6 outputs and concatenate your advert div:

...
$i = 1;
while($article = mysqli_fetch_assoc($get_article_res)){

  if(6 === $i++) {
    $list_articles .= '<div class="advert">ADVERT CODE</div>';
  }
...

Upvotes: 3

unixmiah
unixmiah

Reputation: 3143

On your

 <div class=\"selectArticleTitle\"><a href=\"article.php?id=$article_id&title=$article_url_title\">$article_title</a></div>

put another div followed by it for better div organization then use css to position it

do your positioning for

[ Article ][ Article ][ Article ]
[ Article ][ Article ][ ADVERTS ]
[ Article ][ Article ][ Article ]

with CSS

Upvotes: 0

Related Questions