Originariamente inviato da piero.mac
Scusa, ma se calcoli con una funzione il numero delle notti ... metti questo numero in una variabile cosa che gia' fai a quanto pare con $numero_di_notti

Codice PHP:
$query_offerte=("SELECT id, albergo, titolo, 
              DATE_FORMAT(valida_da, '%d/%m/%Y') AS valida_da, 
              DATE_FORMAT(valida_fino, '%d/%m/%Y') AS valida_fino, 
              price, arrangiamento, prezzo_come, scadenza, pacchetto
                 FROM offerte
                WHERE '
$arrivo' between valida_da AND valida_fino 
        and '
$partenza' between valida_da and valida_fino 
        and (prezzo_come = 1 OR prezzo_come = 
$numero_notti)
                ORDER by price/prezzo_come"
)              
                or die(
"Impossibile eseguire la query: "mysql_error());
                        } 
Se ti servisse ordinare per data dovresti cambiare il nome dell'alias altrimenti come gg-mm-aaaa non potresti ordinarle correttamente.

Credo poi tu volessi dire "rendere dinamica la query"
si ma io devo dire che se le notti sono 2
la query deve avere nel where
Codice PHP:
 and (prezzo_come OR prezzo_come 2
Cmq credo di esserci riuscito mettendo where 1, tipo

Codice PHP:
$query_offerte="SELECT id, albergo, titolo, DATE_FORMAT(valida_da, '%d/%m/%Y') AS valida_da, DATE_FORMAT(valida_fino, '%d/%m/%Y') AS valida_fino, price, arrangiamento, prezzo_come, scadenza, pacchetto FROM offerte WHERE 1";

if (
$numero_di_notti == "2") {
    
$query_offerte .= " AND '$arrivo' between valida_da AND valida_fino and '$partenza' between valida_da and valida_fino and prezzo_come <= $numero_di_notti ORDER by price/prezzo_come";
}
if (
$numero_di_notti == "3") {
    
$query_offerte .= " AND '$arrivo' between valida_da AND valida_fino and '$partenza' between valida_da and valida_fino and (prezzo_come = 1 OR prezzo_come = 3) ORDER by price/prezzo_come";

Il problema e' che la funzione che utilizzo non conta bene le notti, per questo sto perdendo un sacco di tempo, perche' dal 24 al 27 marzo mi conta 2 notti invece che 3, mentre se lo faccio per aprile mi da il risultato corretto... boh