Sign in to follow this  
Followers 0

Module de recherche sur les clients

2 posts in this topic

Posted · Report post

Bonjour,

Depuis quelques jours j'essaie d'integrer à la partie admin dans la rubrique "utilisateurs" un petit module de recherche permettant d'afficher les clients en fonction de plusieurs critères de recherche (comme le nom, le prénom, quelques caractéristiques du produit, la catégorie, etc...)

L'interêt est pour la newsletter : pouvoir récupérer les noms de clients susceptibles d'être interressés par telle ou telle offre.

J'ai donc essayé dintroduire un petit module comme pour la page "administrer/produits.php"

La requête affiche bien les clients qui ont acheté un produit, mais ne prend pas en compte les critères de recherche...

Si une âme chartible pouvait m'aider à résoudre ce petit problème....

Voici le petit module de recherche et sa requête. (je vous passe le code du formulaire qui est très simple à faire) :

<?php

$start = vn($_REQUEST['start']);// Détermine la variable start (début de page)

$nb = 10;

$order = "u.email";

$sort = "desc";

$where = "";

if (isset($frm['nom_c'])) {if (!empty($frm['nom_c'])) {$where .= " AND u.nom_famille LIKE '%".$frm['nom_c']."%'";}} <-- Nom du client

if (isset($frm['prenom_c'])) {if (!empty($frm['prenom_c'])) {$where .= " AND u.prenom LIKE '%".$frm['prenom_c']."%'";}} <-- Prénom du client

if (isset($frm['email_c'])) {if (!empty($frm['email_c'])) {$where .= " AND u.email = '".$frm['email_c']."'";}} //email du client

if (isset($frm['nom'])) {if (!empty($frm['nom'])) {$where .= " AND ca.nom_produit = '".$frm['nom']."'";}} // Nom du produit (ce sont des vins)

if (isset($frm['millesime'])) {if (!empty($frm['millesime'])) {$where .= " AND ca.millesime = '".$frm['millesime']."'";}} // millésime du produit

if (isset($frm['prix'])) {if (!empty($frm['prix'])) {$where .= " AND ca.prix = '".$frm['prix']."'";}} // prix du produit à l'unité

if (isset($frm['nbparpage'])) {if (!empty($frm['nbparpage'])) {$nb = $frm['nbparpage'];}} //nombre d'enregistrement par page

if (isset($frm['total'])) {if ($frm['total'] != "NULL") {$where .= " AND cm.montant = '".$frm['total']."'";}} //montant total d'une commande

if (isset($frm['categorie']) && !empty($frm['categorie'])) // Catégorie du produit

{

if ($frm['categorie'] != "NULL") {$where .= " AND ct.id = '".$frm['categorie']."'";}

$sql = "SELECT DISTINCT u.id_utilisateur, u.prenom, u.nom_famille, u.email, u.priv

FROM peel_commandes cm

, peel_commandes_articles ca

, peel_produits_categories pc

, peel_categories ct

, peel_utilisateurs u

WHERE cm.id = ca.commande_id

AND ca.produit_id = pc.produit_id

AND pc.categorie_id = ct.id

And cm.id_utilisateur = u.id_utilisateur

AND 1 ".$where."

ORDER BY ".$order." ".$sort."

LIMIT $start, $nb";

$result=mysql_query($sql) or DIE('Une erreur de connexion à la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());

$sql_count = mysql_num_rows($sql);

}

else {

$sql = "SELECT DISTINCT u.id_utilisateur, u.prenom, u.nom_famille, u.email, u.priv

FROM peel_commandes cm

, peel_commandes_articles ca

, peel_utilisateurs u

WHERE cm.id = ca.commande_id

And cm.id_utilisateur = u.id_utilisateur

AND 1 ".$where."

ORDER BY ".$order." ".$sort."

LIMIT $start, $nb";

$result=mysql_query($sql) or DIE('Une erreur de connexion à la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());

$sql_count = mysql_num_rows($result);

}

Alors voilà, je ne comprends pas qu'il ne prenne pas en compte mes critères et qu'il m'affiche toujours toute la liste des clients ayant passé une commande....

Share this post


: post
Share on other sites

Posted · Report post

il faut dans les conditions mettre les champs que tu recherche et les tables sur lesquel tu fais ta recherche

if (isset($frm['nom_c'])) {if (!empty($frm['nom_c'])) {

$where .= " AND u.nom_famille LIKE '%".$frm['nom_c']."%'";

$table .= ", peel_utilisateurs u";

$champs .=", u.nom_famille "

}}

avec un

$where de depart $where " cm.id !='' ";

$table ="peel_commandes cm";

$champs="cm.id_utilisateur";

un truc dans ce genre ....

Share this post


: post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

Twitter Advisto ecommerce

Facebook PEEL Shopping