2009-12-25 170 views
0

我想创建动态横幅旋转wih php ajax我想通过mysql_fetch_array()到一个数组来创建一个新的数组()来创建xml响应..........php横幅旋转问题

这里是我的代码

$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

问题在这里:$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. 

} 
+0

感谢了很多人,我已经解决我的问题 – 2009-12-25 10:12:47

+0

没有问题,圣诞快乐。 – johnnyArt 2009-12-25 10:13:45

0

使用此while循环:

$banners[] = $ban 

而不是

$banners = array(

       $ban, 

); 

$html = array_rand($banners); 

,而不是

$html = $banners[array_rand($banners)]; 
0

并以所说的bzabhi,以前定义

$banners = array(); 

while循环,随机化部分必须在循环之后。