回答
保存哪些已在$ _SESSION被证明,只是构造查询,选择其中一个不在其中?
ex。
session_start();
$result = mysql_query("Select * from images WHERE id NOT IN (".implode(',',$_SESSION['used']).") LIMIT 1;");
$result = mysql_fetch_array($result);
$_SESSION['used'][] = $result['id'];
// show image
SELECT * FROM `images` ORDER BY RAND() LIMIT 1;
rand()的顺序是SLOOOOOOOOOW。不应该被使用。 – Robus 2010-06-26 10:58:32
Robus接近,但有关如何获得第一个图像是什么?当$ _SESSION ['used']未设置/空时,该代码会出错。
rand()可能会很慢,但绝对是小型数据库的有效选项。
假设数据库中的ID是连续的,没有间隙,最后一个插入的ID可以作为rand(1,max)的最大值来提前生成随机图像(不使用rand())。
Shruti,当你说你将图像存储在数据库中时,它们实际上是在数据库中,还是只是图像的记录?如果你碰巧有图像在一个目录中(不是很明智,但是这是另一篇文章),你可以对该目录运行scandir(),然后array_rand()获得一个随机图像(零数据库开销,但要小心关于有与文件重载一个目录,并拉动随机入境时一定要小心跳过“”和“..”)
function get_items_by_params($quant,$mode="props",$prop="",$pv="")
{
$DB = new MySQLTable;
$DB->TblName = 'shop_goods';
$where['good_switch']['='] = 'on';
$cr = $DB->Select('COUNT(*)', $where);
if($cr !== false)
{
if(mysql_num_rows($cr)>0)
{
$row_count = mysql_result($cr,0);
if($row_count>$quant)
{
$rand_vals = array();
for($i = 0; $i<$quant; $i++)
{
$rv = mt_rand(0,$cr-1);
$try = 0;
while(in_array($rv,$rand_vals))
{
$rv = mt_rand(1,$row_count);
$try++;
if($try>$quant+1000)
{
break;
}
}
$rand_vals[] = $rv;
}
} else {
return false;
}
$query = array();
foreach($rand_vals as $random_row)
{
$query[] = '(SELECT `good_id`,`good_img`,`good_name`,`good_props` FROM `shop_goods` WHERE `good_switch` = "on" LIMIT '.$random_row.', 1)';
}
$query = implode(' UNION ', $query);
$res = $DB->SimpleQuery($query);
$out = array();
if($res !== false)
{
while($row = mysql_fetch_array($res))
{
$out[] = array($row['good_id'],$row['good_img']);
}
return $out;
}
}
}
return false;
}
此功能使用自己的数据库工作类。但是也有查询:
$cr = $DB->Select('COUNT(*)', $where);//SELECT COUNT(*) FROM shop_goods WHERE good_switch = 'on'
$res = $DB->SimpleQuery($query); // like simple mysql_query()
该点是产生由PHP随机值由MySQL,以避免随机生成
函数返回与对ID阵列/图像
- 1. 如何使用javascript无重复显示随机图像
- 2. 显示不重复的随机图像
- 3. Flash - 随机图像显示,不重复
- 4. 如何避免显示从随机图像脚本重复?
- 5. 如何使用php显示来自mysql数据库的图像?
- 6. 随机图像加载没有重复
- 7. 如何显示随机数据从MySQl与PHP
- 8. 从数据库中显示图像php
- 9. 显示文件夹中的随机图像,不用重复使用JS或PHP
- 10. Android:显示不重复的随机图像从URL
- 11. 随机图像不重复php
- 12. 从MySQL数据库回显随机ID号码,不重复数字?
- 13. 如何在不使用PHP的数据库中重复生成随机数?
- 14. 显示MySQL的数据从数据库或从PHP使用Ajax
- 15. 如何使用PHP显示来自数据库的图像?
- 16. 如何使用PHP从MySQL数据库读取图像?
- 17. 随机显示随机图像jquery
- 18. 如何显示使用PHP存储在mysql数据库中的图像
- 19. 显示从数据库中的图像,图片不显示使用php
- 20. 使用PHP显示从数据库检索的图像
- 21. 显示图像从数据库在html中使用php
- 22. 如何使用HTML + JS从数据库中显示图像?
- 23. 从Sqlite数据库显示随机值使用JavaScript
- 24. 随机图像显示
- 25. 显示随机图像
- 26. PHP/MYSQL如果在数据库中显示图像
- 27. 数据库PHP MySQL的数据插入没有错误显示
- 28. 如何使用mysql在数据库php中显示数据使用mysql
- 29. 从MySQL显示一条随机报价而不重复
- 30. 从SQL Server获取随机数据,但没有重复值
我试图上面给出的代码,但它没't为我工作,这里是我的代码 <?php session_start(); $ conn = mysql_connect(“localhost”,“root”,“”); mysql_select_db(“dbase_mgb”,$ conn); $ result = mysql_query(“SELECT * from image WHERE img_id NOT IN(”.implode(',',$ _ SESSION ['used'])。“)LIMIT 1”); $ _SESSION ['used'] [] = $ result ['img_id']; $ imagepath ='http:// localhost/images /'; ($ row = mysql_fetch_array($ result)) \t { $ img = $ imagepath。$ row ['img_name']; } >
我得到这个误差 警告:mysql_fetch_array()预计参数1是资源,在布尔C中给出:\瓦帕\ WWW \实施例\ display.php on line 11 – Shruti 2010-06-28 04:33:35