如何让mysql数据库id随机回显?

时间:2013-04-11 02:30:14

标签: php javascript mysql

我在线教程后创建了一个PHP / mysql搜索数据库。每件事都很有效。我只是想知道如何在数据库中获得结果以随机顺序显示。

目前,结果根据mysql数据库中的ID号以数字顺序显示。我想知道如何随机显示结果?

使用$ id调用id。 这是PHP:

<?php

$button = $_GET ['submit'];
$search = $_GET ['search'];

if(strlen($search)<=1)
echo "Search term too short";
else{
echo "<h1>Dislpaying results for <b>$search</b> <hr size='1'></h1></br>";
mysql_connect("localhost","dobhgc767545ch2","jhjhghtyutuhjh");
mysql_select_db("doorcouhjhjh2");

$search_exploded = explode (" ", $search);

foreach($search_exploded as $search_each)
{
$x++;
if($x==1)
$construct .="keywords LIKE '%$search_each%'";
else
$construct .="OR keywords LIKE '%$search_each%'";

}

$constructs ="SELECT * FROM search WHERE $construct";
$run = mysql_query($constructs);

$foundnum = mysql_num_rows($run);

if ($foundnum==0)
echo "Sorry, there are no matching result for <b>$search</b>.</br></br>1.
Try more general words. for example: If you want to search 'how to create a website'
then use general keyword like 'create' 'website'</br>2. Try different words with similar
 meaning</br>3. Please check your spelling";
else
{

echo "$foundnum results found !<p>";

$per_page = 9;
$start = $_GET['start'];
$max_pages = $foundnum / $per_page;
if(!$start)
$start=0;
$getquery = mysql_query("SELECT * FROM search WHERE $construct LIMIT $start, $per_page");

while($runrows = mysql_fetch_assoc($getquery))
{
$title = $runrows ['title'];
$description = $runrows ['description'];
$link = $runrows ['link'];
$image = $runrows ['image'];


echo "
<div class=\"pagination\" style=\"display:inline\"><ul style=\"background-color:#\"><li><div      class=\"span3_search\"><div class=\"title_bg\"><h2><a href='$link'><b>$title</b>    </a></h2></div><div class=\"result_img\"><a href='$link'><img id=\"result_img\" src=\"$image\" /></a>    </div><div class=\"result_desc\"><p>$description</p></div><div class=\"result_link\"><br />
<a href='$link'>$link<br /><br /></a><p></div></div></li></ul></div>
";


?>

2 个答案:

答案 0 :(得分:4)

如果它是一个小数据集,你可以使用mysql的

ORDER by RAND()

不要在大型​​数据集上执行此操作,效率非常低

答案 1 :(得分:0)

$constructs ="SELECT * FROM search WHERE $construct ORDER BY rand()";