Probleme exécution requête

Fermé
Mika - 29 mars 2010 à 14:22
 Mika - 29 mars 2010 à 15:20
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 :

if ($_POST['mois'] || $_POST['annee'])
{
$query = "SELECT distinct(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 ';
$query .= ', ' . TABLE_ORDERS_PRODUCTS . ' op ';
$query .= ', ' . TABLE_PRODUCTS . ' p ';
$query .= ', ' . TABLE_PRODUCTS_TO_CATEGORIES . ' pc ';
$query .= ', ' . TABLE_CATEGORIES . ' c ';
$query .= 'where o.orders_id = op.orders_id ';
$query .= 'and op.products_id = p.products_id ';
$query .= 'and p.products_id = pc.products_id ';
$query .= 'and 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 .= '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.

1 réponse

up
0