Bonjour à tous,
Dernièrement j'ai réalisé un comparateur de prix, voici un exemple de requête de listing des produits

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$sql  = " SELECT ic.category_id ";
		$sql .= " FROM (";
		if (isset($site_id)) {
			$sql .= "(";
		}
		if (strlen($user_id)) {
			$sql .= "(";
		}
		$sql .= $table_prefix . "items_categories ic";
		$sql .= " LEFT JOIN " . $table_prefix . "categories c ON c.category_id = ic.category_id) ";
		if (isset($site_id)) {
			$sql .= " LEFT JOIN " . $table_prefix . "categories_sites cs ON cs.category_id = c.category_id) ";	
		}
		if (strlen($user_id)) {
			$sql .= " LEFT JOIN " . $table_prefix . "categories_user_types ut ON ut.category_id = c.category_id) ";	
		}
		$sql .= " WHERE ic.item_id=" . $db->tosql($item_id, INTEGER);
		if (isset($site_id)) {
			$sql .= " AND (c.sites_all=1 OR cs.site_id=" . $db->tosql($site_id, INTEGER, true, false) . ")";
	........
Mais le problème que ce genre de requêtes est déconseillé,il faut aussi impléménter memcached..
Alors Comment je peux améliorer mon code?

Merci de m'aider SVP