Perfettissimo funziona....
Perfettissimo funziona....
Scusa ma "where 1=1" a che serve? Se lo togli hai lo stesso risultato.
In realtà è utile in quanto evita una serie di controlli dato che la query di default possiede questa condizione (sempre vera) basta semplicemente concatenare ad essa le varie condizioni, altrimenti bisognerebbe controllare che vi sia almeno una condizione valida prima di concatenare una ed una sola volta il where alla query.
"Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)
Buongiorno, riapro questo thread perchè pertinente con la richiesta,
avrei la necessità di estrarre l'intervallo dei risultati di una query tra due campi data:
Cerco la soluzione da diversi giorni ma non riesco ad implementare la query
Questo il codice:
Codice PHP:
<?php
// INCLUDO IL FILE PER LA CONNESSIONE
include ("connessione.php");
if (trim($_POST['cliente']) == '' && trim($_POST['gestore']) == '' && trim($_POST['idata']) == '' && trim($_POST['fdata']) == '' && trim($_POST['ora']) == '' && trim($_POST['stato_pren']) == '' && trim($_POST['tipoprenotazione']) == '' && trim($_POST['telefono']) == ''&& trim($_POST['note']) == '')
{
//REINDIRIZZO L'UTENTE AL MESSAGGIO DI ERRORE ATTENZIONE COMPILA ALMENO UN CAMPO
echo "<center><h3><font color=\"red\">Attenzione non hai inserito nessun valore di ricerca</h3><a href=\"qricapp.php\"></br>Torna alla ricerca</a></center></br></br>";
}
else
{
$cliente = $_POST['cliente'];
$gestore = $_POST['gestore'];
$data = $_POST['data'];
$idata = $_POST['idata'];
$fdata = $_POST['fdata'];
$ora = $_POST['ora'];
$stato_pren = $_POST['stato_pren'];
$tipoprenotazione = $_POST['tipoprenotazione'];
$telefono = $_POST['telefono'];
$note = $_POST['note'];
$query = "SELECT *, DATE_FORMAT(appuntamenti.data,'%d/%m/%Y') as data_it FROM appuntamenti WHERE 1=1";
if ($data !=""){
$query .= "AND `data` = STR_TO_DATE('$data', '%d/%m/%Y') BETWEEN '%".$idata."%' AND '%".$fdata."%'";}
if (!empty($cliente)) {
$query .= " AND `cliente` LIKE '%$cliente%'";
}
if (!empty($gestore)) {
$query .= " AND `gestore` LIKE '%$gestore%'";
}
if (!empty($ora)) {
$query .= " AND `ora` = '$ora'";
}
if (!empty($stato_pren)) {
$query .= " AND `stato_pren` = '$stato_pren'";
}
if (!empty($tipoprenotazione)) {
$query .= " AND `stato_pren` = '$tipoprenotazione'";
}
if (!empty($telefono)) {
$query .= " AND `telefono` LIKE '%$telefono%'";
}
if (!empty($note)) {
$query .= " AND `note` LIKE '%$note%'";
}
$query .= " ORDER BY ora ASC";
}
// ESEGUO LA QUERY
$cerca=mysql_query($query);
// STAMPO LA QUERY PER IL DEBUG
// echo $query;
echo "
<center><table>
<tr><th colspan='9'>RISULTATI RICERCA</th><th colspan='6'>OPERAZIONI</tr>
<tr><th>Id<th>Cliente<th>Gestore<th>Data<th>Ora<th>Telefono<th>Note<th>Stato Prenotazione<th>Tipo Prenotazione<th>Nuova<th>Modifica<th>Elimina</tr>
</center>";
while ($riga = mysql_fetch_assoc($cerca)){
echo "<tr><td>$riga[idappuntamento]<td>$riga[cliente]<td>$riga[gestore]<td>$riga[data_it]<td>$riga[ora]<td>$riga[telefono]<td>$riga[note]<td>$riga[stato_pren]<td>$riga[tipo_pren]</td><td><center><a href=\"insapp.php\"><img src= \"img/duplica_32_32.png\"></a></center></td><td><center><a href=\"mapp.php?idappuntamento=$riga[idappuntamento]\"><img src= \"img/modifica_32_32.png\"></a></center></td><td><center><a href=\"delapp.php?idappuntamento=$riga[idappuntamento]\" onclick=\"return confirm('Cancellare definitivamente?')\"><img src=\"img/elimina_32_32.png\"></a></center></td></tr>";
}
echo "</table>";
// E chiudiamo la connessione a MySQL
mysql_close();
?>
Se volete che la funzione di un programma non venga scoperta dall'utente, descrivetela nella documentazione...