当我搜索单词"apple“时,脚本将按以下顺序显示结果:
(1)苹果树(2)果汁(3)苹果
但我想按以下顺序对搜索结果重新排序:
(1)苹果(2)苹果树(3)果汁苹果
正如你所看到的,上面的顺序正是我想要的,结果是根据搜索到的术语"apple“显示的。
//get date
$button = $_GET['submit'];
$search = $_GET['search'];
if (!$button)
echo "Please fill out the form";
else
{
if (strlen($search)<=2)
echo "The item you searched for was to small";
else
{
echo "You searched for <b>$search</b> <hr size='1'>";
//connect to database
mysql_connect('localhost','wnumber','passowrd');
mysql_select_db('wnumber');
//explode search term
$search_exploded = explode(" ",$search);
foreach($search_exploded as $search_each)
{
$str = mysql_real_escape_string(substr($search_each, 0, 4));
//construct query
$x++;
if ($x==1) $construct .= "keywords LIKE '$str%'";
else $construct .= " OR keywords LIKE '$str%'";
}
//echo out construct
$construct = "SELECT * FROM word WHERE $construct";
$run = mysql_query($construct);
$foundnum = mysql_num_rows($run);
if ($foundnum==0)
echo "No results found.";
else
{
echo "$foundnum results found.<p><hr size='1'>";
while ($runrows = mysql_fetch_assoc($run))
{
//get data
$meaning = $runrows['meaning'];
$keywords = $runrows['keywords'];
echo "<b>$keywords</b><br>
<b>$meaning</b><br>
}
}
}
}发布于 2012-12-18 15:38:53
除了递增,如果您对长度的担忧意味着尝试LENGTH()
$construct = "SELECT * FROM word WHERE $construct order by LENGTH(`keywords`)发布于 2012-12-18 15:30:52
使用按asc排序
$construct = "SELECT * FROM word WHERE $construct按要从中升序搜索的字段名排序“;
发布于 2012-12-18 15:40:17
试一试
按关键字Asc排序
想要得到想要的结果
https://stackoverflow.com/questions/13928248
复制相似问题