Produits associés

2 messages dans ce sujet

Posté(e) · Signaler ce message

Bonjour,

Lorsqu'un produit est associé à un autre, la réciproque est généralement vraie.

Pour le faire sans peine, il faut modifier dans le fichier administrer\produits.php

function insere_produit /* ajoute les références associées */ qui devient :

for ($i = 0; $i < count($frm['references']); $i++) {

if (!empty($frm['references'][$i])) {

$qid = mysql_query("

INSERT INTO peel_produits_references (reference_id, produit_id)

VALUES ('{$frm['references'][$i]}', '$produit_id')");

$qid = mysql_query("

INSERT INTO peel_produits_references (produit_id, reference_id)

VALUES ('{$frm['references'][$i]}', '$produit_id')");

}}
Ca, c'est simple. :( Mais comment faire pour empêcher l'enregistrement d'une référence à soi-même ? :D C'est-à-dire, empêcher l'enregistrement de la référence 255 au produit 255 ? Pour l'instant, je n'ai trouvé qu'un if ($ref['id'] != $prod['id']) au moment d'afficher le résultat, mais cela ne fait pas très propre. PS: dans le même ordre d'idée, lorsqu'on supprime un produit, la fonction 'supprime_produit($id)' il faut aussi le supprimer lorsqu'il est 'référence' dans la table peel_produits_references, sauf à se retrouver avec un produit B qui fait toujours référence à un produit C qui n'existe plus :) . Pour ce faire, il convient d'ajouter
$qid = mysql_query("DELETE FROM peel_produits_references WHERE reference_id = $id");
après ou avant
$qid = mysql_query("DELETE FROM peel_produits_referencesWHERE produit_id = $id");

(On peut sans doute faire plus concis)

Cordialement.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

Lorsqu'un produit est associé à un autre, la réciproque est généralement vraie.

Pour le faire sans peine, il faut modifier dans le fichier administrer\produits.php

function insere_produit /* ajoute les références associées */ qui devient :

for ($i = 0; $i < count($frm['references']); $i++) {

if (!empty($frm['references'][$i])) {

$qid = mysql_query("

INSERT INTO peel_produits_references (reference_id, produit_id)

VALUES ('{$frm['references'][$i]}', '$produit_id')");

$qid = mysql_query("

INSERT INTO peel_produits_references (produit_id, reference_id)

VALUES ('{$frm['references'][$i]}', '$produit_id')");

}}
Ca, c'est simple. :( Mais comment faire pour empêcher l'enregistrement d'une référence à soi-même ? :D C'est-à-dire, empêcher l'enregistrement de la référence 255 au produit 255 ? Pour l'instant, je n'ai trouvé qu'un if ($ref['id'] != $prod['id']) au moment d'afficher le résultat, mais cela ne fait pas très propre. PS: dans le même ordre d'idée, lorsqu'on supprime un produit, la fonction 'supprime_produit($id)' il faut aussi le supprimer lorsqu'il est 'référence' dans la table peel_produits_references, sauf à se retrouver avec un produit B qui fait toujours référence à un produit C qui n'existe plus :) . Pour ce faire, il convient d'ajouter
$qid = mysql_query("DELETE FROM peel_produits_references WHERE reference_id = $id");
après ou avant
$qid = mysql_query("DELETE FROM peel_produits_referencesWHERE produit_id = $id");

(On peut sans doute faire plus concis)

Cordialement.

Le mieux c'est dans la fonction insere_produits de /administrer/produits.php

A la ligne qui fait la jointure dans la table produits_references, il faut ajouter un test qui récuère la référence des produits associés et si la référence est égale à la référence insérée (stocké dans $frm['reference']) alors il ne faut pas créer la jointure

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