2009-12-25 108 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循環,隨機化部分必須在循環之後。