Data ophalen van vandaag met AND OR

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Furio Scripting

Furio Scripting

07/07/2016 11:08:14
Quote Anchor link
Beste forumleden,

Ik wil in de opencart database records ophalen van de bestellingen die vandaag geplaatst zijn.

In de tabel oc_order staan de volgende velden:

order_status_id / 1 en 5 in mijn geval zijn in behandeling of verzonden welke die moet hebben.
date_added

Ik heb de volgende query:

[code/]
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php

$q
= 'SELECT * FROM oc_order WHERE order_status_id = 1 || order_status_id = 15 AND YEAR(date_added) = YEAR(NOW()) AND MONTH(date_added) = MONTH(NOW()) AND DAY(date_added) = DAY(NOW()) ';
?>


Zonder de order_status_id vergelijking werkt de code goed dus krijg ik enkel de order van vandaag maar met de vergelijking of de status van de order op verzonden of in behandeling staat helaas niet meer.
 
PHP hulp

PHP hulp

20/04/2024 08:48:40
 
Ben van Velzen

Ben van Velzen

07/07/2016 11:11:30
Quote Anchor link
Gebruik ipv || altijd OR, || is officieel concatenatie. Gebruik daarbij eens haakjes, ofwel iets als:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php

$q
= 'SELECT * FROM oc_order WHERE (order_status_id = 1 OR order_status_id = 15) AND (YEAR(date_added) = YEAR(NOW()) AND MONTH(date_added) = MONTH(NOW()) AND DAY(date_added) = DAY(NOW())) ';
?>
 
- SanThe -

- SanThe -

07/07/2016 11:12:26
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$q
= 'SELECT * FROM oc_order WHERE order_status_id IN (1,15) AND YEAR(date_added) = YEAR(NOW()) AND MONTH(date_added) = MONTH(NOW()) AND DAY(date_added) = DAY(NOW()) ';
?>
 
Furio Scripting

Furio Scripting

07/07/2016 11:22:24
Quote Anchor link
super thanks! Werkt perfect zo.
 
Thomas van den Heuvel

Thomas van den Heuvel

07/07/2016 15:38:20
Quote Anchor link
Euh.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
AND YEAR(date_added) = YEAR(NOW()) AND MONTH(date_added) = MONTH(NOW()) AND DAY(date_added) = DAY(NOW())

Kan dat niet korter? Je bent de query in PHP aan het behandelen / zet MySQL nodeloos aan (extra) rekenwerk.

Waarom niet
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$q
= '... WHERE date_added = CURDATE()';
?>

of
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$q
= "... WHERE date_added = '".date('Y-m-d')."'";
?>

?

In het laatste geval kun je er nog iets generiekers van maken waarbij je de bestellingen van dag X (X variabel) opvraagt.
 
Furio Scripting

Furio Scripting

10/07/2016 15:42:04
Quote Anchor link
Weet iemand misschien ook hoe ik de query kan gebruiken voor week,maand en jaar.

Het liefst deze omgebouwd naar week, maand, jaar.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
  $q
= 'SELECT * FROM oc_order WHERE (order_status_id = 1 OR order_status_id = 15) AND YEAR(date_added) = YEAR(NOW()) AND MONTH(date_added) = MONTH(NOW()) AND DAY(date_added) = DAY(NOW()) ';
                $result = $database->query($q);
?>


Alvast bedankt!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.