我希望你能帮助我..我的问题是,我的网站上有一个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标记中显示的结果进行排序。
你好,麦克斯
发布于 2015-04-30 22:00:12
您可以根据所选的选项动态地更改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);另外,作为额外的技巧,在动态创建sql语句时,可以查看http://www.w3schools.com/php/php_mysql_prepared_statements.asp来了解如何保护数据库不受sql注入的影响。
https://stackoverflow.com/questions/29969579
复制相似问题