Ho un problema con la ricerca tramite date.
Nel database, per ogni item ho due valori-data: inizio e fine (i campi sono data_in e data_out).
La ricerca parte inizialmente da due valori-data inseriti via form, ad esempio:
2017-12-20 e 2017-12-27
Per estendere il risultato della ricerca, prima di effettuare la query, modifico questi valori-data, creandomi tre variabili:
$startdata, che è uguale alla data di inizio, meno sette giorni (2017-12-13)
$startdata2, che è uguale alla data di inizio, più sette giorni (2017-12-27)
$enddata, che è uguale alla data di fine, più trenta giorni (2018-01-27)
A questo punto, faccio questa query:
Quello che dovrebbe fare, è restituire tutti i record in cui il campo data_in contiene una data maggiore o uguale a 2017-12-13 e inferiore o uguale a 2017-12-27, oppure in cui il campo data_out contiene una data inferiore o uguale a 2018-01-27.codice:$result2 = mysql_query("SELECT * FROM `offerte` WHERE (`data_in` >= '$startdata' AND `data_in` <= '$startdata2') OR `data_out` <= '$enddata' ORDER BY `inter_pos`,`data_in` ASC");
La query invece mi restituisce una serie di record che non hanno nulla a che vedere con questi parametri (ad esempio: inizio 2017-09-28 e fine 2017-10-08...).
Il formato delle date è corretto (lo verifico con un echo), quindi perchè il risultato è sballato?