我想创建动态横幅旋转器与php ajax我想将mysql_fetch_array()传递给一个数组来创建一个新的数组()来创建xml响应..........
这是我的代码
$sql = mysql_query("SELECT * FROM ads");
header('Content-type: text/xml');
echo '<?xml version="1.0" ?>';
while($row = mysql_fetch_array($sql)){
$title = $row['title'];
$img = $row['file'];
$body = $row['body'];
$ban = '<b>'.$title.'</b><br><br><img src="ads/'.$img.'"><br><br>'.$body;
$banners = array(
$ban,
);
$html = $banners[array_rand($banners)];
}
<banner>
<content><?php echo htmlentities($html); ?></content>
<reload>3000</reload>
</banner>
但只返回一个广告不返回多个广告我该如何修复
答案 0 :(得分:0)
在while循环中使用它:
$banners[] = $ban
而不是
$banners = array(
$ban,
);
和
$html = array_rand($banners);
而不是
$html = $banners[array_rand($banners)];
答案 1 :(得分:0)
对于bzabhi所说的,定义你的
$banners = array();
在while循环之前,随机化部分必须在循环之后。
答案 2 :(得分:0)
问题在于:$banners = array($ban);
。您要做的是将$banners
数组中的所有广告作为条目包含在内,但您未能实现这一目标。
在数组中包含条目的正确代码是$banner[] = $ban
。这样,来自您的查询的每个广告都将存储为单独的条目。
所以正确的代码是:
$sql = mysql_query("SELECT * FROM ads");
$banner = array(); //Define the array before trying to add elements.
header('Content-type: text/xml');
while($row = mysql_fetch_array($sql))
{
$title = $row['title'];
$img = $row['file'];
$body = $row['body'];
$ban = '<b>'.$title.'</b><br><br><img src="ads/'.$img.'"><br><br>'.$body;
$banner[] = $ban; //Adding a new entry at the end.
$html = array_rand($banner); //Getting a random entry.
}