2012-05-05 50 views
0

我試圖每次刷新頁面時顯示隨機橫幅。我面臨的問題是第一個橫幅將再次顯示,並從數據庫中提取橫幅。我biegner在PHP ..所以建議橫幅刷新的代碼。橫幅更新刷新

+1

到目前爲止你寫了什麼代碼? –

+0

請在此發佈您的代碼。我們可以爲您提供建議。 – Dhruvisha

+0

可能這對你有幫助:http://www.phpbb.com/kb/article/adding-a-random-header-image/ – Dhruvisha

回答

0

您可以使用PHP的rand函數,將最小值設置爲0,最大值設置爲行數-1,這將用於隨機選擇橫幅。

這是我會怎麼做,假設你使用MySQL數據庫(當然你需要用自己的來取代MySQL參數):

$conn = mysql_connect("localhost", "username", "password"); 
$db = mysql_select_db("database_name_here", $conn); 
$query = mysql_query("SELECT * from banner_table); 
$max = mysql_num_rows($query) - 1; 
$image = mysql_result($query, rand(0, $max), "Image_Url_Column"); 

那麼無論你的形象包含:

<img src="<?php echo $image; ?>" alt="Banner image" /> 

或者如果你在輸出PHP整個元素:

echo "<img src=\"" . $image . "\" alt=\"Banner image\" />"; 

更新:如果3條橫幅同時顯示,也許你可以做這樣的事情:

$conn = mysql_connect("localhost", "username", "password"); 
$db = mysql_select_db("database_name_here", $conn); 
$query = mysql_query("SELECT * from banner_table); 
$rows = mysql_num_rows($query); 

$bannerToRetrieve; //the banner (database row number) to be retrieved from database 
$alreadyRetrieved = array(); //holds values of previous numbers generated by rand() so the same banner isn't output again 

for($i = 0; $i < 3; $i++) 
{ 

    //Only set $bannerToRetrieve to a row that hasn't already been called (stored in $alreadyRetrieved) 
    do 
    { 
     $bannerToRetrieve = rand(0, $rows - 1); 
    } 
    while(in_array($bannerToRetrieve, $alreadyRetrieved)); //if number is in array, it will generate another number 

    $image = mysql_result($query, $bannerToRetrieve, "Image_Url_Column"); 
    echo "<img src=\"" . $image . "\" alt=\"Banner image\" />"; 

    $alreadyRetrieved[] = $bannerToRetrieve; 
} 

以及$圖像變量表示的文件名或者是圖像文件的URL將被加載例如「banner1.png」。這是你設計系統的方式嗎?

+0

謝謝你的回覆。但在我的網站的主頁上的橫幅來自數據庫..在中間部分(寬度爲80%),每次顯示3條橫幅時,我想這樣做,當我刷新所有3條橫幅變化並且橫幅在1小時後顯示..以及爲什麼要使用$ image變量。 。它的理由是什麼,我不明白..plz解釋..它緊急。 –

+0

@Alica_Casaligi我修改了我的答案,參見上文。 –

+0

thanx很多...其工作.... –