首先筛选然后排序结果

时间:2015-04-30 13:50:42

标签: php sql sorting get

我希望你能帮助我..我的问题是我在我的网站上有一个PHP + SQL脚本,你可以搜索艺术家,歌曲和东西。我有一个包含4个单元格的表格:标题,艺术家,流派和语言。我已经配置了所有内容,以便在标签中输入搜索查询时一切正常。

HTML:

        <div class="search_bar">
  <form method="post" action="example.php?go">
    <div class="input-group">
      <input name="name" type="text" class="form-control" placeholder="Artist, Song, Language or Genre">
      <span class="input-group-btn">
        <input class="btn btn-default Go" name="submit" type="submit" value="Go!"></butto>
</span>

PHP + SQL:

         <?php

if(isset($_POST['submit'])){
if(isset($_GET['go'])){
$name=$_POST['name'];
;

//connect to the database
$db=mysql_connect ("example", "example", "example") or die ('Ups! Seems like something went wrong!'); 

//-select the database to use
$mydb=mysql_select_db("example");

//-query the database table
$sql="SELECT * FROM example WHERE Titel LIKE '" . $name . "%' OR Language LIKE '" . $name . "%'  OR Genre LIKE '" . $name . "%' OR Artist LIKE '" . $name . "%'";


//-run the query against the mysql query function
$result=mysql_query($sql);

//-count results


while($row=mysql_fetch_array($result)){
// \(^_^)/
//tabellen beginn ?>

         <tr>
           <td class="col-sm-1"><?php echo $Titel =$row['Titel']; ?></td>
           <td class="col-sm-2"><?php echo $Artist =$row['Artist']; ?></td>
           <td class="col-sm-2"><?php echo $Genre =$row['Genre']; ?></td>
           <td class="col-sm-2"><?php echo $Genre =$row['Language']; ?></td>
         </tr>
         <?php
}
}
else{
echo "<p>Please enter a search query</p>";
}
}
//Suchbareinstellungen_Songs
?>  

现在我的实际问题是:我希望用户可以选择动态选择是否要按字母顺序对歌曲,艺术家或语言进行排序。我想我必须使用第二个$ _GET超全局,但我如何实现它只是对搜索查询$ _GET Tag中显示的结果进行排序。

电贺, 最大

1 个答案:

答案 0 :(得分:0)

你可以动态改变你的sql,具体取决于所选的选项

伪代码示例传入:

Switch($optionchosen) {
case 1 : $sql = $sql . ' ORDER BY ARTIST';
break;
case 2 : $sql = $sql . ' ORDER BY LANGUAGE';
break;
case 3 : $sql = $sql . ' ORDER BY TITEL';
break;
}

完成后再执行

$result=mysql_query($sql);

另外,作为额外提示,请查看http://www.w3schools.com/php/php_mysql_prepared_statements.asp 学习php预处理语句,以便在动态创建sql语句时保护数据库免受sql注入