如果广告获得批准= 1,我想展示广告。我正在使用的是此代码;
$query = $db->query("SELECT * FROM ads WHERE approved = '1'");
$ad = $db->fetch_array($query);
if (advert_available())
{
for($id=1; $id < 4+1; ++$id)
{
if ($ad['spot_id'] == $id)
{
// Approved ad
$ads = '<td width="25%" valgn="middle" align="center"><a href="'.htmlspecialchars_uni($ad['link']).'" target=_blank><img src="'.htmlspecialchars_uni($ad['image']).'" alt="" title="" width="285px" height="114px" class="advert_image"></a></td>';
}
else
{
// If ad is not approved, show default <td>
$ads = '<td width="25%" valgn="middle" align="center"><a href="misc.php?action=buy_ad&spot_id='.$id.'"><img src="images/xf/ads1.gif" alt="Ad Spot" title="Click here to reserve this ad spot."></a></td>';
}
$ads_spot_bit .= $ads;
}
$ads_spot = '
<table border="0" class="tborder">
<tr>
'.$ads_spot_bit.'
</tr>
</table>
';
}
但问题是,它只显示一个已批准的广告,但有2个已批准的广告!我在这里缺少什么?
顺便说一下,我正在使用for循环显示4个广告位。
答案 0 :(得分:1)
您已置于以下条件
if ($ad['spot_id'] == $id)
可能有两种可能的有效广告,但来自数据库的spot_id可能与for循环中的$ id列不匹配。
答案 1 :(得分:0)
您需要在循环中获取结果。试试这样的事情
while( $ad = $db->fetch_array($query) ){
//do your processing
}