afficher un prix

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : afficher un prix

par Truc » 08 déc. 2007, 19:12

Modération :
nad2206, si ta question est résolue, pense à ajouter le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.
Tu peux réaliser cette opération en cliquant sur le bouton Image en haut à gauche de ce sujet.

par nad2206 » 08 déc. 2007, 18:23

Merci mais aye j'ai trouver l'erreur, voici le bon code :

Code : Tout sélectionner

case PRODUCTS_OPTIONS_TYPE_RADIO: //CLR 030714 Add logic for radio buttons $tmp_html = '<table width="180" class="formArea2">'; $products_options_query = tep_db_query("select pov.products_options_values_id, pov.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov where pa.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pa.options_id = '" . $products_options_name['products_options_id'] . "' and pa.options_values_id = pov.products_options_values_id and pov.language_id = '" . $languages_id . "'"); $checked = false; while ($products_options_array = tep_db_fetch_array($products_options_query)) { $tmp_html .= '<tr><td class="main">'; $tmp_html .= tep_draw_radio_field('id[' . $products_options_name['products_options_id'] . ']', $products_options_array['products_options_values_id'], $checked); $checked = false; $tmp_html .= '<td class="main">' . $products_options_array['products_options_values_name'] .'</td>'; $tmp_html .=$products_options_name['products_options_comment'] ; if ($products_options_array['options_values_price'] != '') { $tmp_html .= '<td width="70" class="main"><b>' . $currencies->display_price($products_options_array['options_values_price']+$product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) .'</b></td>'; } $tmp_html .= '</tr></td>'; } $tmp_html .= '</table><br><br>'; ?> <tr> <td class="main" valign="top"><br> <br> <b><?php echo $products_options_name['products_options_name'] . ''; ?></b></td> <td class="main"><?php echo $tmp_html; ?></td> </tr> <?php break;
Il fallait juste inverser
$products_options_array['options_values_price'] et $product_info['products_price']

Voili, voilou

par Hubert Roksor » 07 déc. 2007, 22:11

En fait, la meilleure façon d'exposer ses problèmes c'est avec un exemple court. Dans ton cas, ça aurait été
Je possède un article dont le prix est 12, il possède deux attributs dont le prix est 8 et 5. Je cherche à afficher le total, 25, mais je n'obtiens que 12.
Ceci dit, le problème c'est surtout que ton code est très difficile à lire, notamment parce que tu mets trop de choses sur la même ligne. Il y a aussi beaucoup de code redondant. Par exemple, au lieu de
if ($products_options['price_prefix'] == '+') {
	$tmp_html .= '<td width="70" class="main"><b>' . $currencies->display_price($product_info['products_price'] + $products_options['options_values_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) .'</b></td>';
} else if ($products_options['price_prefix'] == '-') {
	$tmp_html .= '<td width="70" class="main"><b>' . $currencies->display_price($product_info['products_price'] - $products_options['options_values_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) .'</b></td>';
} else if ($products_options['price_prefix'] == '') {
	$tmp_html .= '<td width="70" class="main"><b>' . $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) .'</b></td>';
}
...on pourra écrire...
switch ($products_options['price_prefix'])
{
	case '+':
		$price = $product_info['products_price'] + $products_options['options_values_price'];
		break;

	case '-':
		$price = $product_info['products_price'] - $products_options['options_values_price'];
		break;

	default:
		// '' est le cas par défaut j'imagine ?
		$price = $product_info['products_price'];
}

$display_price = $currencies->display_price(
	$price,
	tep_get_tax_rate($product_info['products_tax_class_id'])
);

$tmp_html .= '<td width="70" class="main"><b>' . $display_price .'</b></td>';
À part ça, mon conseil serait de regarder le contenu de $products_options_array : a-t'il toutes les infos dont tu as besoin pour calculer le prix ? Si oui, le problème est dans tes calculs PHP. Si non, le problème vient de la requête.

par nad2206 » 07 déc. 2007, 20:35

IL me semblait que c'est ce que j'avais fais !

Voila je suis en train de developper un site ecommerce et je souhaiterais afficher le prix des articles
mais le prix des artiles doit etre prix prix du produit + prix des attribut ( ca c'est le résultat escompté) voici le code que j'ai inserer dans ma page, mais le probleme c'est qu'il ne m'affiche que le prix du produit ( et ca c'est le résultat obtenu )

Merci d'avance

par Hubert Roksor » 07 déc. 2007, 20:27

Je te recommande de suivre les conseils affichés lors des rappels, et tout particulièrement celui-ci
si votre programme ne donne pas le résultat escompté, décrivez le résultat obtenu, le résultat souhaité et en quoi précisément le résultat obtenu diffère du résultat souhaité

afficher un prix

par nad2206 » 07 déc. 2007, 20:04

Voila je suis en train de developper un site ecommerce et je souhaiterais afficher le prix des articles
mais le prix des artiles serais prix sans attribut + prix attribut voici le code que j'ai inserer dans ma page, mais le probleme c'est qu'il ne m'affiche que le prix du produit

Quelq'un serait il ou se trouve mon erreur.
D'avance merci
<?php 


 case PRODUCTS_OPTIONS_TYPE_RADIO:
            //CLR 030714 Add logic for radio buttons
            $tmp_html = '<table width="180" class="formArea2">';
            $products_options_query = tep_db_query("select pov.products_options_values_id, pov.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov where pa.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pa.options_id = '" . $products_options_name['products_options_id'] . "' and pa.options_values_id = pov.products_options_values_id and pov.language_id = '" . $languages_id . "'");
            $checked = false;
            while ($products_options_array = tep_db_fetch_array($products_options_query)) {
              $tmp_html .= '<tr><td class="main">';
              $tmp_html .= tep_draw_radio_field('id[' . $products_options_name['products_options_id'] . ']', $products_options_array['products_options_values_id'], $checked);
              $checked = false;
              $tmp_html .= '<td class="main">' . $products_options_array['products_options_values_name'] .'</td>';
              $tmp_html .=$products_options_name['products_options_comment'] ;
              if ($products_options['price_prefix'] == '+') {
                $tmp_html .= '<td width="70" class="main"><b>' . $currencies->display_price($product_info['products_price'] + $products_options['options_values_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) .'</b></td>';
              } else if ($products_options['price_prefix'] == '-') {
			    $tmp_html .= '<td width="70" class="main"><b>' . $currencies->display_price($product_info['products_price'] - $products_options['options_values_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) .'</b></td>';
              } else if ($products_options['price_prefix'] == '') {
			    $tmp_html .= '<td width="70" class="main"><b>' . $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) .'</b></td>';
              } 			  
              $tmp_html .= '</tr></td>';
            }
            $tmp_html .= '</table><br><br>';
?>
                      <tr> 
                        <td class="main" valign="top"><br>
                          <br>
                          <b><?php echo $products_options_name['products_options_name'] . ''; ?></b></td>
                        <td class="main"><?php echo $tmp_html;  ?></td>
                      </tr>
                      <?php
            break;