每次用户刷新页面时,我都会尝试显示随机横幅。我面临的问题是要再次显示第一个横幅并从数据库中获取横幅。我是 php..so 中的比格纳,因此建议了横幅刷新的代码。
问问题
222 次
1 回答
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;
}
$image 变量表示要加载的图像文件的文件名或 URL,例如“banner1.png”。你是这样设计系统的吗?
于 2012-05-05T12:58:18.887 回答