首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >首先筛选,然后对结果进行排序

问首先筛选,然后对结果进行排序
EN

Stack Overflow用户
提问于 2015-04-30 21:50:42
回答 1查看 77关注 0票数 1

我希望你能帮助我..我的问题是,我的网站上有一个PHP+SQL脚本,你可以用它来搜索艺术家、歌曲和其他东西。我有一个包含4个单元格的表格:标题、艺术家、流派和语言。我已经配置好了一切,如果您在标签中输入搜索查询,一切都会正常工作。

HTML:

代码语言:javascript
复制
        <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:

代码语言:javascript
复制
         <?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标记中显示的结果进行排序。

你好,麦克斯

EN

回答 1

Stack Overflow用户

发布于 2015-04-30 22:00:12

您可以根据所选的选项动态地更改sql

伪代码示例传入:

代码语言:javascript
复制
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;
}

在你完成这项工作之后,执行你的

代码语言:javascript
复制
$result=mysql_query($sql);

另外,作为额外的技巧,在动态创建sql语句时,可以查看http://www.w3schools.com/php/php_mysql_prepared_statements.asp来了解如何保护数据库不受sql注入的影响。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29969579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档