Probleme exécution requête
Bonjour à tous,
J'ai un souci avec une requête SQL.
Celle-ci s'exécute mais j'obtient le résultat au bout de 5minutes (le serveur est bien ralentit pendant ce temps la).
Mon problème est que je ne vois pas comment l'optimiser.
Cette requête doit me renvoyer les dates ou ,au moins, un produit appartenant à la catégorie 183 a été acheté. L'utilisateur sélectionne le mois et l'année où la recherche doit s'effectuer.
Voici mon code en php :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
if ($_POST['mois'] || $_POST['annee'])
{
$query = "SELECT DATE(o.date_purchased) as maDate, DAY(o.date_purchased) as day, MONTH(o.date_purchased) as month, YEAR(o.date_purchased) as year ";
$query .= 'FROM ' . TABLE_ORDERS . ' o INNER JOIN ' . TABLE_ORDERS_PRODUCTS . ' op on o.orders_id = op.orders_id INNER JOIN ' . TABLE_PRODUCTS . ' p on op.products_id = p.products_id INNER JOIN ' . TABLE_PRODUCTS_TO_CATEGORIES . ' pc on p.products_id = pc.products_id INNER JOIN ' . TABLE_CATEGORIES . ' c on pc.categories_id = c.categories_id ';
$query .= 'and c.parent_id = 183 ';
if ($_POST['mois'])
{
$query .= 'and MONTH(o.date_purchased) = ' . $_POST['mois'] . ' ';
}
if ($_POST['annee'])
{
$query .= 'and YEAR(o.date_purchased) = ' . $_POST['annee'] . ' ';
}
$query .= 'group by DATE(o.date_purchased) ';
$query .= 'order by DAY(o.date_purchased)';
$livre_array = tep_db_query($query);
$num_result = tep_db_num_rows($livre_array);
} |
En espérant que vous pourrez m'aider, merci d'avance.