上のオペレータの間に私は2つの日付ピッカー(DD/MM/YYYY)を持つフォームを持っています。
コード:クエリ - PHP ADODB
<label for="from">From Date:</label>
<input type="text" id="from" name="from">
<label for="to">to Date:</label>
<input type="text" id="to" name="to">
そして、私はPHPとのデータのこの範囲を選択してみてください。 しかし、エラーがあります。
Fatal error: Uncaught exception 'com_exception' with message 'Source: Microsoft OLE DB Provider for ODBC Drivers
Description: [Microsoft][Driver ODBC Microsoft Access] Tipi di dati non corrispondenti nell'espressione criterio.' in C:\Program Files (x86)\EasyPHP-Devserver-16.1\eds-www\DinamicoWeb\index.php:43 Stack trace: #0 C:\Program Files (x86)\EasyPHP-Devserver-16.1\eds-www\DinamicoWeb\index.php(43): com->execute('SELECT [Id Ord]...') #1 {main} thrown in C:\Program Files (x86)\EasyPHP-Devserver-16.1\eds-www\DinamicoWeb\index.php on line 43
だからこれは私のPHPファイル(日付なしの完璧な作業)である:
$input=$_POST['input'];
$id=$_POST['id'];
$tipo=$_POST['tipo'];
$numero1=$_POST['numero1'];
$numero2=$_POST['numero2'];
$data1=$_POST['from'];
$data2=$_POST['to'];
if (empty($input)) {
$sql="SELECT [Id Ord] AS [ID], [Tipo Ord] AS [Tipo], [N Ord] AS [Numero], [Data Ord] AS [Data], [Ragione Sociale], [Indirizzo], [TotImp] AS [IMPORTO TOTALE], [TotIva] AS [IMPORTO IVA] FROM [Ordini] WHERE [Id Ord] LIKE '$id' OR [Tipo Ord] LIKE '$tipo' OR [Data Ord] BETWEEN '$data1' AND '$data2'";
} else {
$sql="SELECT [Id Ord] AS [ID], [Tipo Ord] AS [Tipo], [N Ord] AS [Numero], [Data Ord] AS [Data], [Ragione Sociale], [Indirizzo], [TotImp] AS [IMPORTO TOTALE], [TotIva] AS [IMPORTO IVA] FROM [Ordini] WHERE [Indirizzo] LIKE '%$input%' OR [Ragione Sociale] LIKE '%$input%' OR [Id Ord] LIKE '$id' OR [Tipo Ord] LIKE '$tipo'" OR [Data Ord] BETWEEN '$data1' AND '$data2'";
}
行43:
$rs = $con->execute($sql);
おかげでフォーマットされた方法を変更する必要がある場合がありますので、あなたのPOSTデータがフォーマットされているか分かりません!正しいですが、私の日付形式はDD/MM/YYYYなので、 '$ data1 = date( 'd/m/Y'、strtotime($ _ POST ['from']));; そして、2つの数字の間を操作するには、number1とnumber1を数値形式に変換する必要がありますか?だから: '$ numero2 = int($ _ POST ['numero2']);'? :) –