osCommerce France : Accueil Forum Portail osCommerce France Réponses aux questions Foire aux contributions

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> [ Résolu] Création module, module pour la page product_info
Le voyageur
posté 20 Nov 2004, 01:56
Message #1


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 165
Inscrit : 21-January 04
Lieu : Rambouillet, France
Membre no 1848



Bonsoir,
Nul en php , je pédale dans la semoule....
Dans la page product_info, je voudrais appeler les produits ayant le même "model" en remplacement du module ALSO_PURCHASED_PRODUCTS ou XSELL_PRODUCTS.
voila mon code actuel:

QUOTE

<?php
/*
$Id: auteur_products.php, v1  15/11/2004

osCommerce, Open Source E-Commerce Solutions
<http://www.oscommerce.com>

Copyright © 2002 osCommerce

Released under the GNU General Public License
*/

if ($HTTP_GET_VARS['products_id']) {
$auteur_query = tep_db_query("select distinct products_model, products_id, products_name, products_image, products_tax_class_id, products_price from " . TABLE_PRODUCTS . "  where products_model = '" . $HTTP_GET_VARS['products_model'] . "' and products_status = '1' order by products_id asc limit " . MAX_DISPLAY_ALSO_PURCHASED);
$num_products_auteur = tep_db_num_rows($auteur_query);
if ($num_products_auteur >= MIN_DISPLAY_ALSO_PURCHASED) {
?>
<!-- auteur_products //-->
<?php
      $info_box_contents = array();
      $info_box_contents[] = array('align' => 'left', 'text' => TEXT_AUTEUR_PRODUCTS);
      new contentBoxHeading($info_box_contents);

      $row = 0;
      $col = 0;
      $info_box_contents = array();
      while ($auteur = tep_db_fetch_array($auteur_query)) {




        $info_box_contents[$row][$col] = array('align' => 'center',
                                               'params' => 'class="smallText" width="33%" valign="top"',
                                               'text' => '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $auteur['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $auteur['products_image'], $auteur['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a><br><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_model=' . $auteur['products_model']) . '">' . $auteur['products_name'] .'</a><br>' . $auteur_price. '<br><a href="' . tep_href_link(FILENAME_DEFAULT, tep_get_all_get_params(array('action')) . 'action=buy_now&products_id=' . $auteur['products_id'], 'NONSSL') . '">' . tep_image_button('button_buy_now.gif', TEXT_BUY . $auteur['products_name'] . TEXT_NOW) .'</a>');
        $col ++;
        if ($col > 2) {
          $col = 0;
          $row ++;
        }
      }
      new contentBox($info_box_contents);
?>
<!-- auteur_products_eof //-->




<?php
    }
  }
?>


Je n'arrive pas à sortir quelques choses , je m'emmêle entre les _id et les _model ou plus grave...

Ci quelqu'un avait le temps de regarder mon code pour me donner des infos
Merci d'avance
Thierry


--------------------
osCommerce MS2-MAX v1.5.5 +++
SPplus
Go to the top of the page
 
xaglo
posté 20 Nov 2004, 08:28
Message #2


5eme dan OSC
Icône de groupe

Groupe : Administrateur
Messages : 14910
Inscrit : 22-November 02
Membre no 610



Je ne suis pas sûr d'avoir compris ce que tu veux faire. Tu utilises le champs "model" pour renseigner l'auteur de l'ouvrage, c'est ça?

et quel est le problème?? que t'affiche cette requête??

Cette condition "where products_model = '" . $HTTP_GET_VARS['products_model'] ." qu tu utilise ne fonctionnera que si la variable 'products_model' a été passée en méthode GET dans ta page, ce qui n'est probablement pas le cas. pour vérifier, Ajoute un petit echo de débuggage dans ta page
QUOTE
echo 'ma variable auteur = ' . $HTTP_GET_VARS['products_model'];
tu verras si elle existe.

Pour t'aider plus, il nous faut en savoir plus wink.gif


--------------------
Ni Hot-line ni Service Après Vente, ces forums sont un lieu d'échanges.
Une Question? Rechercher / FAQ / docV1.pdf / docV2.pdf / contributions
Go to the top of the page
 
Le voyageur
posté 20 Nov 2004, 09:51
Message #3


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 165
Inscrit : 21-January 04
Lieu : Rambouillet, France
Membre no 1848



Bonjour,
Merci de ta réponse, oui j'utilise le champ "model" pour afficher mes auteurs.
J'utilisais xsell pour afficher les autres livres de l'auteur, mais à partir de quelques centaines cela devient tres long et fastidieux, sans parler de la taille de la bd !
Donc abandon. Je souhaite remplacer par un module qui appelle les produits d'un même model.

QUOTE
Cette condition "where products_model = '" . $HTTP_GET_VARS['products_model'] ." qu tu utilise ne fonctionnera que si la variable 'products_model' a été passée en méthode GET dans ta page, ce qui n'est probablement pas le cas. pour vérifier, Ajoute un petit echo de débuggage dans ta page

effectivement ma variable 'products_model'n'a pas été déclarée en méthode GET
Comment faire et ou ?
D'autre part, je ne pense pas que ma requête à la base de donnée soit bonne, ou alors je progresse biggrin.gif
Thierry


--------------------
osCommerce MS2-MAX v1.5.5 +++
SPplus
Go to the top of the page
 
fissiaux
posté 20 Nov 2004, 09:57
Message #4


5eme dan OSC
Icône de groupe

Groupe : Membres
Messages : 17048
Inscrit : 26-November 03
Lieu : Chez moi
Membre no 1669



Tu n'as pas besoin de la passer en GET, car tu es sur la page product_info.php et tu utilises un module.

Ce qu'il te faut faire c'est récupéré quand tu lis le produit le champs product_model et le mettre en entrée de ta requête.

========






Dans ta requête, tu dois utuliser le champ $product_info['products_model'] dans ta clause where.
Go to the top of the page
 
xaglo
posté 20 Nov 2004, 10:05
Message #5


5eme dan OSC
Icône de groupe

Groupe : Administrateur
Messages : 14910
Inscrit : 22-November 02
Membre no 610



ok alors, comme te dit fissiaux, il suffit d'aller chercher tous les produits dont le model est égal au model du produit affiché ($product_info['products_model']) Par ailleurs je ne pense pas que le DISTINCT de la requête soit necessaire


--------------------
Ni Hot-line ni Service Après Vente, ces forums sont un lieu d'échanges.
Une Question? Rechercher / FAQ / docV1.pdf / docV2.pdf / contributions
Go to the top of the page
 
Le voyageur
posté 20 Nov 2004, 14:13
Message #6


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 165
Inscrit : 21-January 04
Lieu : Rambouillet, France
Membre no 1848



Merci pour votre aide, mes essais ne sont pas très concluant....

pour le moment j'ai cette erreur :
QUOTE

1064 - Erreur de syntaxe près de 'Benoit and products_status = '1' order by products_id asc limit ' à la ligne 1

select products_model, products_id, products_name, products_image, products_tax_class_id, products_price from products where products_model = Pierre Benoit and products_status = '1' order by products_id asc limit 9


Il y a un progrès, car "benoit" est le nom de l'auteur appelé!

et mon code est:
QUOTE

$auteur_query = tep_db_query("select products_model, products_id, products_name, products_image, products_tax_class_id, products_price from " . TABLE_PRODUCTS . "  where products_model = " . ($product_info['products_model']) . " and products_status = '1' order by products_id asc limit " . MAX_DISPLAY_ALSO_PURCHASED);


Pouvez-vous m'en dire un peu plus sur mon code ?
Merci...
Thierry


--------------------
osCommerce MS2-MAX v1.5.5 +++
SPplus
Go to the top of the page
 
xaglo
posté 20 Nov 2004, 17:49
Message #7


5eme dan OSC
Icône de groupe

Groupe : Administrateur
Messages : 14910
Inscrit : 22-November 02
Membre no 610



ne met que ta query... pour l'affichage, on verra plus tard wink.gif
pour l'erreur de syntaxe, il faudrait qu Pierre Benoit soit entre guillemets: where products_model = 'Pierre Benoit'

essaye
CODE
$auteur_query = tep_db_query("select products_model, products_id, products_name, products_image, products_tax_class_id, products_price from " . TABLE_PRODUCTS . "  where products_model = '" . ($product_info['products_model']) . "' and products_status = '1' order by products_id asc limit " . MAX_DISPLAY_ALSO_PURCHASED);
la différence se situe dans la présence des quotes ' encadrant les doubles quotes "

Mais avant de te prendre trop la tête la dessus, même si l'exercice est intéressant... crois-tu que ce soit une bonne idée d'utiliser ce champs model??? en tous cas pour la production!!!. Je m'explique, le model est prévu pour être, à priori, unique à chaque article. C'est pourquoi tu le remplis manuellement pour chacun. Le problème d'utiliser ce champs est que tu devras être extremement attentif pour le renseigner et ne pas faire de faute de frappe pour qu'il fonctionne, car sinon, "Pierre Benoît" ou "Pierre Bennoit" n'apparaitront pas confused.gif autant dire que rien ne fonctionnera!! Il me semble qu'il serait plus judicieux de gérer ça comme les fabricants, de les définir à coté et de proposer une liste déroulante pour le choisir... non??


--------------------
Ni Hot-line ni Service Après Vente, ces forums sont un lieu d'échanges.
Une Question? Rechercher / FAQ / docV1.pdf / docV2.pdf / contributions
Go to the top of the page
 
Le voyageur
posté 20 Nov 2004, 19:23
Message #8


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 165
Inscrit : 21-January 04
Lieu : Rambouillet, France
Membre no 1848



Oui, j'ai fais le choix de cette solution, je fais attention en rentrant les noms, il y a très peu d'erreur (tant pis) je pense que c'est plus simple, automatique et plus facile à utiliser qu'une liste déroulante de plusieurs milliers de noms ... ( à ce niveau là, le module recherche est préférable, et je l'ai déja)

En tâtonnant, j'avais trouvé les quotes smile.gif le résultat :
QUOTE
1054 - Champ 'products_name' inconnu dans field list

Si je retire products_name tout s'affiche correctement sans le nom et 2 décimales de trop sur le prix.
Quoi faire pour intégrer le products_name dans la field list ?


--------------------
osCommerce MS2-MAX v1.5.5 +++
SPplus
Go to the top of the page
 
Le voyageur
posté 20 Nov 2004, 21:01
Message #9


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 165
Inscrit : 21-January 04
Lieu : Rambouillet, France
Membre no 1848



Pour products_name, j'ai ajouté cette ligne:
QUOTE

$auteur['products_name'] = tep_get_products_name($auteur['products_id']);


Il me reste le prix qui s'affiche : 1.5000 au lieu de : 1.50 €

Egalement, je dois empêcher l'affichage dans le module du produit en cours


--------------------
osCommerce MS2-MAX v1.5.5 +++
SPplus
Go to the top of the page
 
xaglo
posté 20 Nov 2004, 21:18
Message #10


5eme dan OSC
Icône de groupe

Groupe : Administrateur
Messages : 14910
Inscrit : 22-November 02
Membre no 610



Pour l'affichage du prix, utilise la fonction display_price, ça te permetra d'ajouter la taxe au besoin
CODE
function display_price($products_price, $products_tax, $quantity = 1)

QUOTE
Egalement, je dois empêcher l'affichage dans le module du produit en cours
là, je comprend pas la question shock.gif


--------------------
Ni Hot-line ni Service Après Vente, ces forums sont un lieu d'échanges.
Une Question? Rechercher / FAQ / docV1.pdf / docV2.pdf / contributions
Go to the top of the page
 
Le voyageur
posté 20 Nov 2004, 21:40
Message #11


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 165
Inscrit : 21-January 04
Lieu : Rambouillet, France
Membre no 1848



Merci, cela marche, il reste un probleme :
exemple
Je regarde le détail d'un livre dans une page products_info, en dessous dans le module apparait TOUS les livres du même auteur, y compris celui déjà affiché en haut de page, c'est ce deuxième affichage que je voudrais empécher.

dans le genre :
QUOTE
exept products_info_id


Si tu m'a suivi, bravo blush.gif


--------------------
osCommerce MS2-MAX v1.5.5 +++
SPplus
Go to the top of the page
 
xaglo
posté 20 Nov 2004, 22:39
Message #12


5eme dan OSC
Icône de groupe

Groupe : Administrateur
Messages : 14910
Inscrit : 22-November 02
Membre no 610



ajoute dans ta requête "AND products_id <> $product_info['products_id']" ou un truc comme ça, ça devrait suffire cool.gif


--------------------
Ni Hot-line ni Service Après Vente, ces forums sont un lieu d'échanges.
Une Question? Rechercher / FAQ / docV1.pdf / docV2.pdf / contributions
Go to the top of the page
 
Le voyageur
posté 20 Nov 2004, 23:09
Message #13


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 165
Inscrit : 21-January 04
Lieu : Rambouillet, France
Membre no 1848



Merci Xaglo de ton aide précieuse, grâce à toi mon module est terminé et est installé, alors que je galère depuis plusieurs jours.
Le résultat est visible ICI
Je ferme la discussion
Merci à tous
Thierry biggrin.gif


--------------------
osCommerce MS2-MAX v1.5.5 +++
SPplus
Go to the top of the page
 

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



RSS Version bas débit Nous sommes le : 18th June 2013 - 06:46
Ce site est déclaré auprès de la commision Nationale
de l'Informatique et des Libertés (déclaration n°: 1043896)