ciao,
se ho capito bene, così controllo cosa deve ordinare...
codice:
//############### VALORE SORT #############################
if($_GET["sort"]){
$sr_sort = trim($_GET["sort"]);
}else{
$sr_sort = "ASC";
}
if ($sr_sort == "ASC") {
$sr_sort = "DESC";
}elseif ($sr_sort == "DESC") {
$sr_sort = "ASC";
}
}
########## FUNZIONE CONTROLLO ##################
if (isset($_GET['sk'])) {
$sr_tabaffare = 'mileage';
}elseif (isset($_GET['sp'])){
$sr_tabaffare = 'price1';
}elseif (isset($_GET['sy'])){
$sr_tabaffare = 'year_num';
}else{
$sr_tabaffare = 'price1';
}
//Se invece vuoi un controllo completo:
if (strpos($_GET['var'], " ") !== false || strpos($_GET['var'], "'") !== false || strpos($_GET['var'], "\"") !== false || strpos($_GET['var'], "=") !== false){
//La parola contiene un carattere non valido
}
########## FUNZIONE CONTROLLO ##################
questa è la query...
Codice PHP:
//############# PREPARA LA QUERY --> INIZIO #################################
$query = "SELECT * FROM #__autoexp_add WHERE published = '1'";
if($bool_sr_vin)
$query .= " AND vin_code LIKE '$sr_vin%' ";
if($bool_sr_stock)
$query .= " AND stock_num LIKE '$sr_stock%' ";
if($bool_sr_zip)
$query .= " AND zip_code LIKE '$sr_zip%' ";
if($bool_sr_mark)
$query .= " AND mark_id = '$sr_mark' ";
if($bool_sr_model)
$query .= " AND model_id = '$sr_model' ";
if($bool_sr_condition)
$query .= " AND conditions = '$sr_condition' ";
if($bool_sr_year_from || $bool_sr_year_to)
{
if(!$bool_sr_year_from)
$sr_year_from = "1970";
if(!$bool_sr_year_to)
$sr_year_to = date("Y");
$query .= " AND year_num BETWEEN ";
$query .= "'$sr_year_from' AND ";
$query .= "'$sr_year_to' ";
}
if($bool_sr_price_from || $bool_sr_price_to)
{
if(!$bool_sr_price_from)
{
//$rq = "SELECT MIN(price1) FROM #__autoexp_add WHERE published = '1'";
//$database->setQuery($rq);
$sr_price_from = "1";//spaceOffPrice($database->loadResult());
}
if(!$bool_sr_price_to)
{
$rq = "SELECT MAX(price1) FROM #__autoexp_add WHERE published = '1'";
$database->setQuery($rq);
$sr_price_to = spaceOffPrice($database->loadResult());
}
$query .= " AND price1 BETWEEN ";
$query .= "'$sr_price_from' AND ";
$query .= "'$sr_price_to' ";
$query .= "OR price2 BETWEEN ";
$query .= "'$sr_price_from' AND ";
$query .= "'$sr_price_to' ";
}
if($bool_sr_fuel)
$query .= "AND fuel = '$sr_fuel' ";
########################## MODIFICA INSERIMENTO KM ####################
if($bool_sr_mileage)
$query .= "AND mileage = '$sr_mileage' ";
########################## MODIFICA INSERIMENTO KM ####################
if($bool_sr_trans)
$query .= "AND transmis = '$sr_trans' ";
if($bool_sr_drive)
$query .= "AND drivetrain = '$sr_drive' ";
if($bool_sr_body)
$query .= "AND bodytype = '$sr_body' ";
if($bool_sr_color)
$query .= "AND extend_color = '$sr_color' ";
if($bool_sr_country)
$query .= "AND country = '$sr_country' ";
//$query .= "ORDER BY flag_top DESC, flag_commercial DESC, flag_featured DESC, id DESC, price1 DESC";
//mysql_real_escape_string ($_POST['callsign'],$conn)."
$query .= "ORDER BY ".$sr_tabaffare." ".$sr_sort."";
//echo $query;
//############# PREPARA LA QUERY <--FINE #################################
questo è il link su di un campo da ordinare:
index.php?option=com_autoexp&page=show_search&mode =1&sk=1&Itemid=".$com_itemid."&sort=".$sr_sort
scusa la ridondanza di codice
grazie