проблема ротации баннеров php - PullRequest
0 голосов
/ 25 декабря 2009

Я хочу создать динамическое вращение баннера с 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>

но возвращается только одно объявление, а не несколько объявлений. Как мне это исправить

Ответы [ 3 ]

0 голосов
/ 25 декабря 2009

И к тому, что сказал бзабхи, определите свой

$banners = array();

перед циклом while, а часть рандомизации должна идти после цикла.

0 голосов
/ 25 декабря 2009

Проблема здесь: $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 голосов
/ 25 декабря 2009

Используйте это в цикле while:

$banners[] = $ban

Вместо

$banners = array(

                $ban,

);

и

$html = array_rand($banners);

вместо

$html = $banners[array_rand($banners)];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...