PHP restituisce il risultato di una query errato

carlo9987

Utente Attivo
5 Mar 2013
35
0
0
Roma
Ciao a tutti!

Da qualche giorno sto cercando di risolvere, senza successo, un problema decisamente strano.

Lavoro con la seguente configurazione: Apache + PHP 5 + SQL Server 2005.

Premetto che se lanciata direttamente su SQL server i risultati sono corretti, ma sulla pagina web invece, assolutamente no ed il problema in seguito a diverse verifiche, è da attribuirsi alle date:

PHP:
$startDate= $_POST['startDate']; 
$endDate = $_POST['endDate'];


$queryResultStr = "select ISF, Provincia, AMB, Categoria, SPEC, count(Visitato) Totale from vtlcontattiriep where userIdLogIn = '".$DM."' and startDate between '".$startDate." 00:00:00' and '" . $endDate . " 23:59:59' GROUP BY ISF, Provincia, Categoria, AMB, SPEC";

$queryResult = mssql_query($queryResultStr);

echo $startDate ."</br>"; # ----> esempio: 18-01-2012

echo $endDate."</br>";	 # ----> esempio: 23-10-2012			

var_dump($queryResultStr); # ----> esempio: string(229) "select ISF, Provincia, AMB, Categoria, SPEC, count(Visitato) Totale from vtlcontattiriep where userIdLogIn = '10' and startDate between '18-01-2012 00:00:00' and '23-10-2012 23:59:59' GROUP BY ISF, Provincia, Categoria, AMB, SPEC"
	

			
while($rowResult = mssql_fetch_array($queryResult)){

           echo "<tr class='" . str_replace(" ","",$rowResult['ISF']) . " " . $rowResult['Provincia'] . " " . str_replace(".","",$rowResult['Categoria']) . " " . str_replace(" ","",str_replace(".","",$rowResult['AMB'])) . " " . str_replace(".","",$rowResult['SPEC']) . "' style='font-family: Tahoma'>";
						
           echo "<td>" . $rowResult['ISF'] . "</td><td>" . str_replace(" ","SENZA PROVINCIA",$rowResult['Provincia']) . "</td><td>" .  $rowResult['Categoria'] . "</td><td>" .  $rowResult['AMB'] . "</td><td>" .  $rowResult['SPEC'] . "</td><td>" .  $rowResult['Totale'] . "</td>"; 
echo "</tr>";

}


Spero che qualcuno mi possa aiutare, sto impazzendo!!! :incazz2:

Vi ringrazio in anticipo!
 

marino51

Utente Attivo
28 Feb 2013
3.039
192
63
Lombardia
modifica la parte di select in questo modo,

$DM."' and convert(varchar, startDate, 103) between '".$startDate."' and '". $endDate. "' GROUP

probabilmente nella tua select originale non c'è corrispondenza di formato delle date
ciao
Marino
 

carlo9987

Utente Attivo
5 Mar 2013
35
0
0
Roma
Ti ringrazio per la risposta! :)

Già avevo provato con la conversione e purtroppo non mi restituisce alcun risultato.

Inserendo la parte di codice

PHP:
'".$startDate." 00:00:00'

riadatto la data ed infatti la query che viene generata, se lanciata direttamente su SQL Server funziona perfettamente.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
come hai settato il campo startDate?
probabilmente, come dice marino51, non è giusta la corrispondenza del formato delle date.
 

carlo9987

Utente Attivo
5 Mar 2013
35
0
0
Roma
Ciao Borgo italia!

Allora la data viene acquisita tramite datapicker con il seguente formato:

dateFormat: 'dd-mm-yy'

In seguito la metto nella variabile $startDate:

PHP:
$startDate= $_POST['startDate'];

e poi la inserisco nella condizione della query così:

PHP:
 and startDate between '".$startDate." 00:00:00' and '" . $endDate . " 23:59:59'

Potrebbe esservi d'aiuto sapere che sul db il campo è di tipo DATATIME.



ciao
come hai settato il campo startDate?
probabilmente, come dice marino51, non è giusta la corrispondenza del formato delle date.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
se non vado errato il formato delle date con DATATIME è YYYY-MM-DD HH:MM:SS
quindi (non mi ricordo di preciso perchè a me piace lavorare col timestamp) è evidente l'incongruenza con dd-mm-yy
 

carlo9987

Utente Attivo
5 Mar 2013
35
0
0
Roma
Effettivamente voleva la data nel formato YYYY-MM-DD HH:MM:SS.... La cosa che mi aveva messo fuori strada è proprio il fatto che se lancio la query direttamente da SQL Server vuole il formato DD-MM-YYYY HH:MM:SS, altrimenti mi restituisce l'errore:

La conversione del tipo di dati da char a datetime ha generato un valore di tipo datetime non compreso nell'intervallo dei valori consentiti.

Chi mi può spiegare questa cosa???

Grazie mille!:D
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
prova così
PHP:
<?php
//....
// se da datapicker il formato è (come tu esempio) ----> esempio: 18-01-2012 
//riducila al formato richiesto YYYY-MM-DD HH:MM:SS
$espl=explode("-", $_POST['startDate']);
$startDate=$espl[2]."-".$espl[1]."-".$espl[0]." 00:00:00";
//analogo per $endDate
//e poi la usi nella query
//se vuoi utolizzarla anche nell'echo, ma in formato italiano, fatti altre due variabili (es) $startDate_it=$_POST['startDate'];
//.....
?>
 

carlo9987

Utente Attivo
5 Mar 2013
35
0
0
Roma
Perfetto!!! Funziona :D

Grazie mille per il supporto :fonzie:

ciao
prova così
PHP:
<?php
//....
// se da datapicker il formato è (come tu esempio) ----> esempio: 18-01-2012 
//riducila al formato richiesto YYYY-MM-DD HH:MM:SS
$espl=explode("-", $_POST['startDate']);
$startDate=$espl[2]."-".$espl[1]."-".$espl[0]." 00:00:00";
//analogo per $endDate
//e poi la usi nella query
//se vuoi utolizzarla anche nell'echo, ma in formato italiano, fatti altre due variabili (es) $startDate_it=$_POST['startDate'];
//.....
?>
 
Discussioni simili
Autore Titolo Forum Risposte Data
S [PHP] Perchè con require(tcpdf...) restituisce ora errata? PHP 0
T [PHP] Metodo che restituisce un array PHP 5
M Php e mysql: tabella con URL che restituisce ID PHP 2
X Php e funzione che restituisce byte PHP 2
M Visulizzare immagine con php PHP 4
G [PHP] Creare script di prenotazione con controllo disponibilità. PHP 7
G leggere file txt e stampare con php il contenuto a video PHP 7
F Ricreare struttura php+mysql su Xampp Apache 0
Z PHP.INI - STMP per invio email con PHP Server Dedicati e VPS 0
M Array associativi php su 2 campi mysql PHP 10
G Invio form con PHP PHP 3
T fatture con voci fattura in php PHP 0
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
M Collegamento tra form html e script php PHP 4
M Problemi con la stampa dei valori in php PHP 1
W [Cerco collaborazioni] Sviluppatore Web (PHP) Offerte e Richieste di Lavoro e/o Collaborazione 1
D passare valori da database sql a php PHP 1
L Ricezione dei dati su file php da modulo html PHP 6
E Inviare variabile a PHP da ciclo in JS Javascript 0
A form PHP prenotazione tramite query PHP 2
A Form php prenotazione di un azienda sanitaria locale presso studio medico PHP 1
F menù select dinamico da db in php PHP 3
L Problemi form Pagina php HTML e CSS 3
L php mysql non salva solo id PHP 21
L php mysql cerca e visualizza pagina PHP 0
F Il codice php è giusto? PHP 2
R Aggiornare record mysql con Ajax, jQuery e php Ajax 2
A invio massivo dati a file php Javascript 4
Z MySql injection PHP PHP 1
V PHP form intersecate PHP 0
I [Offro][Retribuito] Programmatore Php Offerte e Richieste di Lavoro e/o Collaborazione 0
P Funzione jQuery Ajax invio file a php jQuery 1
C Dopo chiusura del tag php la stringa html va a capo PHP 1
E Transaction php PHP 11
B ciclare file xml con PHP PHP 1
L Estrazione dati php Database 6
A Aiuto per pagina php PHP 0
E Php select option e ajax PHP 23
I Aiuto php Dependent Lookup PHP 0
T arretramento versione PHP... PHP 3
D problema php mysql PHP 1
D problema php mysql PHP 1
E Barra di avanzamento codice PHP PHP 4
G creazione menu a tendina e invio a pagina php PHP 1
A inserire variabile php colore in div html PHP 2
Z Video protetto con PHP PHP 0
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
I Eecuzione di javascript in ciclo foreach php. PHP 7
S Libreria PHP per creare file dwg o dxf PHP 0
A [cerco - retribuito] Sviluppatore Php freelance per progetti vari Offerte e Richieste di Lavoro e/o Collaborazione 2

Discussioni simili