Отображение значений базы данных в соответствии с выбранным фильтром в выпадающем меню

Как фильтровать параметры раскрывающегося списка, чтобы перечислять мои записи в таблице?

Пример фильтра HTML:

<form action="filter.php" method="post"> <select name="filter"> <option>FILTER:</option> <option value="alphabetical">ASC</option> <option value="date">Date</option> </select> </form> 

Базовый выбор MySQL:

 SELECT * FROM table ORDER BY name 

Основной HTML, который перечисляет значения:

 echo '<h1>'.$name.'</h1> <h1>'.$date.'</h1>'; 

Второй фильтр (дата) должен сделать SELECT, в котором перечислены все записи с датами ASC. Второй первый (в алфавитном порядке) должен сделать SELECT, который перечисляет все записи имени только ASC.

Любая идея о том, как MySQL SELECT будет работать в этом случае?

HTML:

 <select name="filter" onchange="filter(this.value)"> <option>FILTER:</option> <option value="alphabetical">ASC</option> <option value="date">Date</option> </select> <div id="results"></div>// store the results here 

Jquery:

 function filter(item){ $.ajax({ type: "POST", url: "filter.php", data: { value: item}, success:function(data){ $("#results").html(data); } }); } 

filter.php:

 include "connection.php"; //database connection $fieldname = $_POST['value']; if($fieldname=="alphabetical"){ // if you choose first option $query1 = mysqli_query("SELECT * FROM table ORDER BY name ASC"); // echo the results }else{ // if you choose second option $query1 = mysqli_query("SELECT * FROM table ORDER BY date ASC"); // echo the results } 

Примечание. Не забудьте включить библиотеку jquery.

Они должны работать, предполагая, что имя и дата являются именами полей в таблице.

 SELECT * FROM table ORDER BY name ASC SELECT * FROM table ORDER BY date ASC 

Я бы сделал что-то вроде этого,

HTML:

 <form action="filter.php" method="post"> <select name="filter"> <option>FILTER:</option> <option value="alphabetical">ASC</option> <option value="date">Date</option> </select> </form> 

PHP

 <?php switch($_POST['filter']){ case "alphabetical": $field = "name"; break 1; case "date": $field = "date"; break 1; } $mysqli = new mysqli("localhost", "my_user", "my_password", "world"); $stmt = $mysqli->prepare("SELECT * FROM table ORDER BY ? ASC"); $stmt->bind_params("s",$field); $stmt->execute(); //ETC ?>