Originariamente inviato da piero.mac
Immaginavo qualcosa di simile. L'esempio era basico ma nulla cambia. Devi comporre la stringa che ti serve a priori in una variabile. Suppongo che questi valori da passare derivino da un form. Non puoi certamente farlo in una query. Prima viene risolto il nome della tabella poi il contenuto del where e solo ora vengono analizzati i campi.
Da dove arrivano questi dati che devi cercare nel db?
allora si io devo selezionare in un form la data di arrivo e la data di partenza, con una funzione calcolo il numero delle notti ed in base alle notti devo visualizzare il prezzo giornaliero se e' una notte o 2 notti, il prezzo giornaliero o il prezzo di 2 notti se sono 2 notti, il prezzo giornaliero o il prezzo settimanale se sono 7 notti.
il codice come sta ora e' cosi
codice:
if($numero_di_notti=="4"){
$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 = 4)
ORDER by price/prezzo_come")
or die("Impossibile eseguire la query: ". mysql_error());
}
if($numero_di_notti=="5"){
$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 = 5)
ORDER by price/prezzo_come")
or die("Impossibile eseguire la query: ". mysql_error());
}
la porzione di codice in grassetto e' l'unica a cambiare, quindi non voglio rendere dinamica la query per non scrivere sempre il codice