Reputation: 691
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> »»</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
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> »»</div>
</div>
";
$i++;
}
Upvotes: -1
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
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