choix du button radio à mettre dans un caddie

choix du button radio à mettre dans un caddie - PHP - Programmation

Marsh Posté le 24-10-2006 à 13:55:57    

Bonjour,
 
J'ai un gros pb qui sera très très simple pour beaucoup...
 
J'ai une boutique en ligne, où les clients peuvent choisir un produit en fonction d'une taille.
J'ai donc differente tailles (liée à des prix différents) dans une table : taille1, taille2 et prix1, prix2.
 
J'ai ensuite un caddie, où quand mon client à selectionné sa taille, son prix doit s'afficher.
 
Mon soucis est que mon caddie fonctionné très bien avec 1 prix (que j'avais precedemment nommé "prix" ), mais je ne sais pas comment faire pour lui dire que n'importe quel case cochée equivaut au "prix".
 
Pour l'instant j'ai dans ma page de produit :
 
  <? if ($prod['taille1'] =="" ){ echo "";} else {?>
<input type="radio" name="taille" value=1><?=$prod['taille1'] ?>
<?  
 $prix1 = $prod['prix1'] * (1-$prod['promotion']/100);
 
   if ($prod['promotion'] != 0) {?>
 
    <font color="#CC0000">Promotion : <? echo $prod['promotion'];  ?> %</font><br />
 
      <s><?=fprix($prod['prix1']); ?></s>&nbsp;
   
    <font color="#CC0000"><?=fprix($prix1); ?> € TTC</font><br />
 
    <? } else {?>
 
      <font color="#CC0000"><?=fprix($prix1); ?> € T.T.C</font><br />
 
    <? } ?> <?}?>
 
  <? if ($prod['taille2'] =="" ){ echo "";} else {?>
<input type="radio" name="taille" value=2><?=$prod['taille2'] ?>
 
<?  
 $prix2 = $prod['prix2'] * (1-$prod['promotion']/100);
 
   if ($prod['promotion'] != 0) {?>
 
    <font color="#CC0000">Promotion : <? echo $prod['promotion'];  ?> %</font><br />
 
      <s><?=fprix($prod['prix2']); ?></s>&nbsp;
   
    <font color="#CC0000"><?=fprix($prix2); ?> € TTC</font><br />
 
    <? } else {?>
 
      <font color="#CC0000"><?=fprix($prix2); ?> € T.T.C</font><br />
 
    <? } ?> <?}?>
 
 </select></span><br />

 
 
<input type="hidden" name="id_produit" value="<?=$prod['id_produit'] ?>" />
<a class="normal" href="Javascript:document.ajout<?=$prod['id_produit'] ?>.submit()">
<img src="<?=$wwwroot?>/images/caddie.gif" align=middle alt="" border="0" />
</a>
<a class="normal" href="Javascript:document.ajout<?=$prod['id_produit'] ?>.submit()">
Ajouter au caddie
</a>
 
 
Si qq'1 pouvait m'aider...
Merci d'avance

Reply

Marsh Posté le 24-10-2006 à 13:55:57   

Reply

Marsh Posté le 24-10-2006 à 13:59:07    

Sans vouloir être méchant, vu le code, j'aurais même pas envie de commander de peur des failles de sécurité :(
 
J'me demande si tu ne te lances pas dans un trop gros projet qui demande des connaissances avancées...

Reply

Marsh Posté le 24-10-2006 à 14:14:11    

sympa,
 mais t'inkiet pas c pas un paiement par carte bancaire!
et puis c'est loin d'etre la totalité de mon code.
 
Sinon une petite aide?

Reply

Marsh Posté le 24-10-2006 à 14:41:49    

FlorentG > J'ai peut être regardé trop vite, mais je ne voit pas où est la faille dans ce qu'il a écrit. A aucun moment il ne met le prix dans une balise input ou autre balise de formulaire.
Aprés qu'il utilise l'html comme en 1995, c'est une autre histoire.
 
mia84 > Qu'est ce que t'entends par "que n'importe quel case cochée equivaut au "prix"."?

Reply

Marsh Posté le 24-10-2006 à 15:00:39    

omega2 a écrit :

FlorentG > J'ai peut être regardé trop vite, mais je ne voit pas où est la faille dans ce qu'il a écrit. A aucun moment il ne met le prix dans une balise input ou autre balise de formulaire.


Y'a pas de faille spécifique aussi. C'est juste qu'en général, c'est le genre de code à comporter des failles

Reply

Marsh Posté le 24-10-2006 à 15:35:42    

éh bien j'ai une table Mysql qui s'appelle produit, avec "id_produit", "prix1", "prix2", "taille1", "taille2"...
 
j'ai mes cases à cocher où mon code appelle "prix1", "prix2"...
 
et j'aimerai faire en sorte que quelquesoit la case cochée, ça sorte un "prix" (général) afin que mon caddie l'affiche
 
car pour le moment j'ai dans mon caddie le code suivant :  
 
$qid = mysql_query("SELECT id_produit, promotion, prix1, prix2, prix3, prix4, prix5, prix6, prix7, prix8, prix9, prix10, prix11 FROM produits WHERE id_produit IN ($in_clause)" );
 
if ($qid) {
   
if (mysql_num_rows($qid) > 0) {
   
    while ($produit = mysql_fetch_array($qid)) {
     
$this->total += $this->articles[$produit['id_produit']] * $produit['prix1'] * (1-$produit['promotion']/100);
     
    }
   
Et comme vous voyez, sur la dernière ligne : ca ne peut me faire venir que mon prix1 et pas les autres... :/

Reply

Marsh Posté le 24-10-2006 à 15:53:56    

Mauvaise organisation de la base de donnée.
Il aurait fallut séparer les infos générale du produit (nom, marque, ... ) des infos propre à un modéle donnée (taille, prix, couleur ...) De cette maniére, t'aurais une requette avec jointure (ou deux requettes) et il aurait suffit de boucler sur la requette pour obtenir les prix.
 
Là, avec ton organisation actuelle, t'es limité au niveau du nombre de prix par produit, tu consome une grande taille disque et mémoire même si un produit n'a qu'un seul prix et pour otbtenir le prix voulut t'es obligé de faire une boucle (d'indice $i par exemple) et de récupérer les données grace à une recherche par indice variable "$tab[{'prix'.$i}]" par exemple.
 
En bref, il vaut mieux revoir l'organisation des données si ca t'es possible et adapté le code ensuite que d'adapter ton code à l'organisation actuelle.

Reply

Marsh Posté le 24-10-2006 à 17:04:33    

merci.
Vu que c'est urgent je vé voir comme ca pour le moment... mais je sais bien qu'il faut que je revoi la bd

Reply

Marsh Posté le 25-10-2006 à 09:45:45    

Désolée de revenir sur mon pb... mais vu mon haut niveau... et comme je suis tétue...
 
Donc si j'ai bien comprix sur ma page de produit je fais une boucle :
 
<? $tab=array('prix1', 'prix2', 'prix3');
foreach ($tab as $prix){
}
?>
 
et pour recuperer le prix ds mon caddie j'ai ecrit ça :
 
 $qid = mysql_query("SELECT id_produit, promotion, prix1, prix2, prix3, prix4, prix5, prix6, prix7, prix8, prix9, prix10, prix11 FROM peel_produits WHERE id_produit IN ($in_clause)" );
 
if ($qid) {
   
if (mysql_num_rows($qid) > 0) {
   
while ($produit = mysql_fetch_array($qid)) {
     
$this->total += $this->articles[$produit['id_produit']] * $produit['$prix'] * (1-$produit['promotion']/100);
     
}
 
Bon apparement j'ai pas tout bien compris, puisque mon caddie me dit bien que j'ai un article, mais son prix est nul!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed