回答
保存哪些已在$ _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