我希望你能帮助我..我的问题是我在我的网站上有一个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中显示的结果进行排序。
电贺, 最大
答案 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注入