Raph5959
Invité n'ayant pas de compte PHPfrance
30 sept. 2009, 19:18
Bonjour ouckileou,
Tout d'abord merci de ta réponse.
J'ai volontairement simplifié le tout car il faut que j'arrive à sortir le panier le plus récent seulement avec la condition ON qui se situe après le JOIN de la table panier, car la conditions WHERE par la suite est utilisé pour le reste du résultat, mais bon je vais tout faire apparaître pour être plus clair, car ce n'est pas juste une requête que je fait pour sortir l'ID d'un panier, mais j'utilise une requête déjà existante, donc j'inclus une colonne ou je veux l'ID du panier client, car c'est un module de statistique que j'ai créé, ou je veux avoir l'ID du dernier panier rempli par le client pour ensuite faire un lien... c'est juste que pour le moment, de la façon dont je fait, ca me sort le premier panier créé par le client, pas le dernier :s
En réalité ma vrai table contient en effet une colonne date, même 2 en réalité, une qui indique la date de création du panier, une autre qui indique la date de mise à jour du panier, moi je ne voudrais seulement que la plus récente, donc avec l'ID la plus haute...
Voici ma vrai requête..
Code : Tout sélectionner
SELECT u.id_customer, u.firstname, u.lastname, c.ip_address, c.date_add, c.http_referer, c.id_connections, c.id_guest, ct.id_cart
FROM `connections` c
LEFT JOIN `connections_page` cp ON c.id_connections = cp.id_connections
INNER JOIN `guest` g ON c.id_guest = g.id_guest
INNER JOIN `customer` u ON u.id_customer = g.id_customer
INNER JOIN `'page` p ON p.id_page = cp.id_page
LEFT JOIN `cart` ct ON ct.id_customer = u.id_customer ( ICI JE RéCUPèRE L'ID DU PANIER )
WHERE c.`date_add` BETWEEN '.ModuleGraph::getDateBetween().'
'.( $http_referer ? 'AND c.http_referer LIKE \''.$http_referer.'\'' : '' ).'
'. ( $showstep == 'error' ? 'AND p.id_page_type = 8' : ( $showstep == 'anypage' ? '' : 'AND p.id_page_type = 3 AND p.'.$showstep.'' )) .'
GROUP BY c.id_connections
ORDER BY '.$orderbyobject.' '.$orderby.'
'.($limit == 1 ? 'LIMIT '.(($page*$resultperpage)-$resultperpage).', '.$resultperpage : '').''
La seul chose que j'ai réussi à faire pour le moment, c'est de remplacer la ligne ou je récupère la panier par ceci
Code : Tout sélectionner
LEFT JOIN `cart` ct ON ( ct.id_customer = u.id_customer AND ct.`date_upd` BETWEEN '.ModuleGraph::getDateBetween().')
En faisans ca, ca ne choisi plus l'ID du premier panier créé, mais plutôt l'ID du panier qui a été modifié pendant la période choisi BETWEEN, mais je préférerai avoir plutot le dernier panier (soit en ID, soit en date peu importe le résultat reviens au même)
oulala je ne sais pas si c'est très clair ce que je dit...