Form ricerca due date stesso campo

lelemkop

Utente Attivo
2 Lug 2013
55
0
6
Ciao a tutti. Ho un problema che non riesco a risolvere.
Ho una tabella dove c'è un campo data (datatime) dove va inserito automaticamente la data e l'ora di inserimento. Quindi 2013-09-02 12:00:00. Per me questo campo è fondamentale. Ora volevo fare un form di ricerca intervallato tra due date ( per ora perchè dopo mi serve anche l'ora).
Ho provato questa query
PHP:
$query = "SELECT * FROM clientiWHERE 1=1";
    $w_data="";
    if ($data !=""){$w_data=" between '%".$data."%' AND '%".$data."%'";}
    $w_intervento=""; 
    if($intervento != ""){$w_intervento=" AND intervento LIKE '%".$intervento ."%' ";}
    $w_cognome=""; 
    if($cognome!=""){$w_cognome=" AND cognome LIKE '%".$cognome."%' ";} 
    $w_nome=""; 
    if($nome!=""){$w_nome=" AND nome LIKE '%".$nome."%' ";} 
    $query .=$w_intervento .$w_cognome.$w_nome.$w_data."  ORDER BY id";
Non mi restituisce alcun risultato, mentre se vado su phpmysql inserendo
PHP:
SELECT * 
FROM  `clienti` 
WHERE data
BETWEEN  '2013-07-05%'
AND  '2013-07-12%'
LIMIT 0 , 30
funziona correttamente. Come posso fare?
Nel form ricerca ho messo così
PHP:
<input id="data" name="data" type="date">
     <input id="data" name="data" type="date">
E' stato inserito due volte perché mi serve "da" "a" praticamente.

Grazie
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, non ho visto bene tutto , ma , between non richiede le percentuali (%) come il like
cambia
PHP:
$w_data=" between '%".$data."%' AND '%".$data."%'";
con
PHP:
$w_data=" between '".$data."' AND '".$data."'";
 

lelemkop

Utente Attivo
2 Lug 2013
55
0
6
L'ho cambiato, ma non cambia niente.
L'avevo messi perchè l campo data è un datetime quindi anche con l'orario ed in formato Anno mese e giorno...
Non saprei perchè se inserisco
PHP:
SELECT * FROM clienti WHERE 1=1 and data like '%".$data."%'";
quindi un giorno solo mi restituisce i risultati cercati.
 
Ultima modifica:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
stampa la query prima di eseguirla
PHP:
echo $query;
controlla se ti sembra a posto e postala
 

lelemkop

Utente Attivo
2 Lug 2013
55
0
6
mi restituisce questo, anche se io avevo chiesto da 5 al 12 ( ho visto che al 12 non c'è nessuna riga)
"SELECT * FROM clienti WHERE 1=1 between '%2013-07-12%' AND '%2013-07-12%' ORDER BY id"
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
ora vedo l'html
Codice:
<input id="data" name="data" type="date">
     <input id="data" name="data" type="date">
dovresti avere qualcosa cosi
Codice:
<input id="data1" name="data1" type="date">
     <input id="data2" name="data2" type="date">
e poi recuperare le due date separate
$data1 e $data2
 

lelemkop

Utente Attivo
2 Lug 2013
55
0
6
ho inserito
PHP:
$data= &_POST['data] e $data2= &_POST['data]
ed ho cambiato l'html in
PHP:
<input id="data" name="data" type="date">
     <input id="data2" name="data2" type="date">
Ma ora mi cerca solo la prima data
PHP:
SELECT * FROM interventi WHERE 1=1 between '%2013-07-05%' AND '%2013-07-05%' ORDER BY id
 
Ultima modifica di un moderatore:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
non data a tutte e due uno ha name data l'altro data2
PHP:
$data= $_POST['data'];
 $data2= $_POST['data2'];
edit
hai cambiato anche la query vero?
PHP:
$w_data=" between '".$data."%' AND '".$data2."'";
 

lelemkop

Utente Attivo
2 Lug 2013
55
0
6
Ok però non mi fa vedere i record compresi tra queste due date.
PHP:
SELECT * FROM interventi WHERE 1=1 between '%2013-07-05%' AND '%2013-07-12%' ORDER BY id
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
la sintassi della query
Codice:
SELECT * FROM interventi WHERE 1=1 between '%2013-07-05%' AND '%2013-07-12%' ORDER BY id
è sbagliata, deve essere cosi
Codice:
SELECT * FROM interventi WHERE 1=1 && campodata between '2013-07-05' AND '2013-07-12' ORDER BY id
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
se è espresso in datatime (wiwa il timestamp) potresti provare a fare (non mi ricordo se c'è anche il gmt)
schematizzo
PHP:
<?php
//.....
$data1=$_POST['data1']."00:00:00";//verifica l'esatta formattazione
$data2=$_POST['data2']."59:59:59";
$query="SELECT * FROM clienti WHERE data BETWEEN '$data1' AND '$data2'"; 
//.....
?>

p.s.
vedo pero che prima nel betwen non metti il nome del campo, come fa php/mysql a capire dove cercare
 

lelemkop

Utente Attivo
2 Lug 2013
55
0
6
l'avevo notato, però mettendo le && mi dà errore.

PHP:
SELECT * FROM interventi WHERE 1=1 && between '2013-07-05%' AND '2013-07-12%' ORDER BY id errore: qualcosa è andato storto
 

lelemkop

Utente Attivo
2 Lug 2013
55
0
6
Ho risolto così
PHP:
$w_data="";
    if ($data !=""){$w_data= " and data between '".$data."%' AND '".$data2."%'";}
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Come hanno già detto gli altri non credo servano i '%' quindi se provi a toglierli dovresti avere lo stesso risultato.
 
Discussioni simili
Autore Titolo Forum Risposte Data
G [PHP] FORM DI RICERCA ESTESA PHP 2
Emix [PHP][MYSQL] Ricerca avanzata tramite form PHP 6
O [HTML] form box ricerca HTML e CSS 3
sandropochi [PHP] Form per creare filtro di ricerca su DB PHP 8
K [WordPress] Plugin per inserire un form per la ricerca in un database.. come si fa? WordPress 1
U [PHP] form per ricerca multipla: Unknown column 'undefined' in 'where clause' PHP 2
L Form di ricerca PHP 2
N Form ricerca valori e visualizzazione risultato ricerca jQuery 2
W Form di ricerca all'interno di un sito mysql PHP 1
P Form per ricerca multipla in MYsql PHP 2
A problema con l'inserimento di valori in una tabella dopo una ricerca da form Classic ASP 1
A form di ricerca Webdesign e Grafica 1
C Urgente Ricerca Aiuto (a Pagamento) Form Altri Annunci 0
G visualizzare risultati ricerca dopo form nella stessa pagina e mantenimento filtri PHP 1
W [Php - MySql] ricerca con form select diversi PHP 14
A form con diversi criteri di ricerca Classic ASP 12
S Database - il form di ricerca non funziona Database 1
L php ricerca da form PHP 0
S passare un valore da un form a un file .php con metodo post PHP 4
K Form che manda dati doppi PHP 1
K Problema form update PHP 2
Elisacau [Contact form 7] Inserire Numero auto incrementante WordPress 1
K form Inserimento record mysql PHP 2
I Form con selettore HTML e CSS 0
K [php]form invio dati PHP 0
G form invio multiplo con checkbox PHP 12
nivaria.achinet Intercettare form solo dopo invio Javascript 1
D Form contatti non funzionante HTML e CSS 0
A Stampare dati da form PHP 8
M Unire 2 funzioni per l'invio di un form e con l'apertura di un div Javascript 0
I Form HTML e CSS 17
otto9due $_FILE non passa i dati dal form PHP 1
M Form: come tornare ai campi già compilati dopo invio PHP 1
G Invio form con PHP PHP 3
felino Form action costum e parametri in queryString WordPress 1
M Come recuperare molteplici input form PHP 1
M Collegamento tra form html e script php PHP 4
L form immagini per il database PHP 0
A form PHP prenotazione tramite query PHP 2
A Form php prenotazione di un azienda sanitaria locale presso studio medico PHP 1
L inserimento form dati multipli ? PHP 0
L Problemi form Pagina php HTML e CSS 3
Cosina Creare bottone delete in form upload PHP 5
Cosina Creare bottone delete in form upload PHP 1
D Devo far funzionare un form di contatti PHP 4
B form gestione input PHP 2
V PHP form intersecate PHP 0
8 Javascript - PDF Form Javascript 0
J Form inserimento dati in database Ajax 1
E Gestione profilo utente tramite Form PHP 3

Discussioni simili