Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
613 views
in Technique[技术] by (71.8m points)

php - shuffle random MYSQL results

The following code displays random database images as well as one specific image (which is what I want). How can I shuffle these results after database query as image ID 11 is always displayed first? I want image ID 11 displayed randomly amongst the others.

Can I use SHUFFLE(). If so where exactly do I put it as at the moment?

Any help would be appreciated as still learning PHP

Thanks.

<?php 

mysql_connect("", "", "") or die(mysql_error()) ; 
mysql_select_db("images") or die(mysql_error()) ;


$photo=mysql_query("SELECT * FROM `profile_images` ORDER BY (ID = 11) DESC, RAND()      
LIMIT 7");


while($get_photo=mysql_fetch_array($photo)){ ?>

<div style="width:300px;">


<img src="<? echo $get_photo['url']; ?>">


</div>

<? } ?>
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

You can shuffle them after they are retrieved to php.

$photos = array();
while ($get_photo = mysql_fetch_array($photo))
    $photos[] = $get_photo;

shuffle($photos);

Or you can do it with subqueries:

SELECT A.* FROM (
    SELECT * FROM `profile_images` 
    ORDER BY (ID = 11) DESC, RAND()      
    LIMIT 7
) as A
ORDER BY RAND()

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...