Module de recherche sur les clients

2 messages dans ce sujet

Posté(e) · Signaler ce message

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....

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

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 ....

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant

Twitter Advisto ecommerce

Facebook PEEL Shopping