Codice PHP:
$order = $_REQUEST['cmb_orderby']; // cmb_orderby è ovviamente la select nella pagina precedente
switch($order) {
case "t_st":
case "n_st":
case "l_st":
case "m_s":
case "a_s":
$orderby_clause = "ORDER BY $order DESC";
break;
default:
$orderby_clause = "ORDER BY tot DESC";
}
$lettura_risultati=mysql_query
("select id, nome_utente, t_st, n_st, n_st, l_st, m_s, a_s, t_rec, vt_st, vt_qu_cam, vt_ris, vt_pul, vt_eff_s, tst_rec, date_format(data_ora_ins, '%d/%m/%Y - ore %H:%i:%s') as data_formattata,
MATCH(n_st, t_st, n_st, l_st) AGAINST('". $_POST['campo_query_nome'] ." ". $_POST['campo_query_tipo'] ." ". $_POST['campo_query_naz'] ." ". $_POST['campo_query_luogo'] ."' IN BOOLEAN MODE) AS tot
from recensioni where MATCH(n_st, t_st, n_st, l_st) AGAINST('". $_POST['campo_query_nome'] ." ". $_POST['campo_query_tipo'] ." ". $_POST['campo_query_naz'] ." ". $_POST['campo_query_luogo'] ."' IN BOOLEAN MODE)
$orderby_clause"); // <--- abbiamo messo la order risultante qua.....
credo che sia sufficiente.....
ovviamente i valori delle option della select devono avere 'value' ai valori che ho scritto nello switch.
NB: non è molto sicuro perchè tramite i valori delle option posso leggermi i nomi di attributi direttamente presenti nel database; quindi sarebbe meglio aggiungere un passaggio (tipo, se selezione ordinamento con valore 1 nella combo, PHP sa già che 1 equivale a "n_st")
Codice PHP:
$order = $_REQUEST['cmb_orderby']; // cmb_orderby è ovviamente la select nella pagina precedente
$order_attrib = array("t_st", "n_st", "l_st", "m_s", "a_s");
switch($order) {
case 1:
case 2:
case 3:
case 4:
case 5:
$orderby_clause = " ORDER BY $order_attrib[$order] DESC ";
default:
$orderby_clause = " ORDER BY tot DESC";
}
e quindi la select sarà tipo:
codice:
<select name="cmb_orderby" ..... etc, etc...>
<option value="1">t_st</option>
<option value="2">n_st</option>
<option value="3">l_st</option>
....
...
</select>
caput?