Jump to content
ricardoneves93

[Resolvido] Fazer query para comparar datas em PHP

Recommended Posts

ricardoneves93

Estou com uma problema com a minha Query em php. Se fizer exactamente a mesma coisa em sqlite3 funciona bem mas não estou a conseguir por a funcionar em php.

A minha tabela:

CREATE TABLE factura(
idFactura INTEGER PRIMARY KEY AUTOINCREMENT,
invoiceNum VARCHAR,
invoiceDate DATE,
idDocumentTotals INTEGER REFERENCES documentTotals
);

se mandar a seguinte URL para o php:

"API/searchInvoicesByField.php?op=range&field=InvoiceDate&value[]=2013-01-21&value[]=2013-11-12"

<?php
if(isset($_GET['field']) && isset($_GET['value']) && isset($_GET['op']))
  {

#Apenas vai buscar os dois primeiros valores, os outros são ignorados o range apenas necessita de dois valores
$val1 = $_GET['value'][0];
$val2 = $_GET['value'][1];

else if($_GET['field'] == "invoiceDate")
{
 $stmt1 = $db->prepare(
  "SELECT * FROM cliente, documentTotals, factura
  where strftime('%Y-%m-%d', invoiceDate) BETWEEN date(:val1) and date(:val2)
  and documentTotals.idDocumentTotals = factura.idFactura and cliente.customerID = factura.idFactura");
  #esta Query nao está a dar qualquer resultado, já tentei com valores absolutos sem usar variáveis mas sem resultados
}

$parameters = array("val1" => $_GET['value'][0], "val2" => $_GET['value'][1]);
$stmt1->execute($parameters);
$result1 = $stmt1->fetch();
$invoices = array();

while($result != null)
{
 $newInvoice['companyName'] = $result1['companyName'];
 $newInvoice['grossTotal'] = $result1['grossTotal'];

 array_push($invoices, $newInvoice);

 $result1 = $stmt1->fetch();
}
echo json_encode($invoices);
  }
?>

Mas não dá qualquer resultado.

Edited by ricardoneves93

Share this post


Link to post
Share on other sites
ricardoneves93

Estou a usar sqlite3, mas já desobri o problema na URL que mando para o php tenho que mandar as datas dentro de aspas para serem consideradas strings

API/searchInvoicesByField.php?op=range&field=InvoiceDate&value[]="2013-01-21"&value[]="2013-11-12", era apenas isto que me estava a falhar.

Obrigado pela ajuda ;)

Cumprimentos,

Ricardo Neves

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.