probleme bizarre

probleme bizarre - PHP - Programmation

Marsh Posté le 26-02-2004 à 18:39:37    

J'ai un caddie virtuel
et je suis face a un probleme d'illogique :
 
je veux que :
si le produit selectionné dans la liste existe dans le caddie, on incremente simplement la quantite du produit existant via la quantité renseignée pour le produit de la liste
Sinon le produit est donc inexistant et on ajoute le produit dans le caddie
 
juske la c normal.
mais le probleme est le suivant.
 
1 - qd je cherche si le produit existe, MySQL est assez baleze pour me trouver un produit existant sil existe pas
2 - Si le produit existe, j'extrait d'abord la quantité initiale du produit pour ensuite lui rajouter x quantité en plus. juske la ca va. mais Le probleme c que, sans rien lui avoir demandé, il m'ajoute la quantité en plus, direct dans la variable d'extraction de la quantité de base. et du coup je me retrouve avec le double de quantité supplémentaire.
 
Merci  d'avance si vous avez le courage de lire tout ca  
 
voici le code si ca peut vous aider:  
 
----------------------------------------
 
 
 $chercher_doublon=" select fk_numero_session,  fk_numero_produit from caddie c
      where fk_numero_session='$cle'
      and fk_numero_produit='$numero_modele'";
 
echo "verif requete: $chercher_doublon<br>";
       
$interro_doublon=mysql_query($chercher_doublon);
$resultat_doublon=mysql_fetch_assoc($interro_doublon);
$doub=mysql_num_rows($interro_doublon);
echo "doublon: $doub<br>";
 
 
if ($doub!="" )
{
   
$trouver_qte=" select quantite_demandee from caddie
  where fk_numero_session='$cle'
  and fk_numero_produit='$numero_modele'";
       
 $interro_qte=mysql_query($trouver_qte);
   
 $resultat_qte=mysql_fetch_assoc($interro_qte);
   
 $quantite_trouvee=$resultat_qte['quantite_demandee'];
   
 $laqte=$quantite[$i];
   
   
 
   
   
   
   
   
 $maj_quantite=" update caddie set       quantite_demandee=$quantite_trouvee+$laqte  
 where  quantite_demandee=$quantite_trouvee
 and fk_numero_session='$cle'
       and fk_numero_produit='$numero_modele'";
     
   echo "requete: $maj_quantite<br>";
   
     
   $interro_maj=mysql_query($maj_quantite);
 
 
 
   if (!$interro_maj)
   { echo "La mise à jour en quantité du produit a échoué";  }
   else
   { echo "La mise à jour en quantité du produit s'est déroulé avec succès"; }
   
  }
 
 
   else
   {
    $inserer_reservation=" insert into caddie (fk_numero_session, fk_numero_produit , quantite_demandee)
          VALUES     ('$cle','$numero_modele','$quantite[$i]')";
 
 
    echo "Requete: $inserer_reservation<br>";
 
     $insertion_finale=mysql_query($inserer_reservation);
 
    if (!$insertion_finale)
    { echo "L'ajout du produit au caddiea échoué";  }
    else
    { echo "L'ajout du produit au caddie s'est déroulé avec succès"; }
 
   }
 } // fin du if
 
 
 
Si vous vous embrouillez dites le moi, j'essaierai detre plus clair


Message édité par jokari34 le 26-02-2004 à 18:40:34
Reply

Marsh Posté le 26-02-2004 à 18:39:37   

Reply

Marsh Posté le 26-02-2004 à 19:39:00    

jokari34 a écrit :

J'ai un caddie virtuel
et je suis face a un probleme d'illogique :
 
je veux que :
si le produit selectionné dans la liste existe dans le caddie, on incremente simplement la quantite du produit existant via la quantité renseignée pour le produit de la liste
Sinon le produit est donc inexistant et on ajoute le produit dans le caddie
 
juske la c normal.
mais le probleme est le suivant.
 
1 - qd je cherche si le produit existe, MySQL est assez baleze pour me trouver un produit existant sil existe pas
2 - Si le produit existe, j'extrait d'abord la quantité initiale du produit pour ensuite lui rajouter x quantité en plus. juske la ca va. mais Le probleme c que, sans rien lui avoir demandé, il m'ajoute la quantité en plus, direct dans la variable d'extraction de la quantité de base. et du coup je me retrouve avec le double de quantité supplémentaire.
 
Merci  d'avance si vous avez le courage de lire tout ca  
 
voici le code si ca peut vous aider:  
 
----------------------------------------
 
 
 $chercher_doublon=" select fk_numero_session,  fk_numero_produit from caddie c
      where fk_numero_session='$cle'
      and fk_numero_produit='$numero_modele'";
 
echo "verif requete: $chercher_doublon<br>";
       
$interro_doublon=mysql_query($chercher_doublon);
$resultat_doublon=mysql_fetch_assoc($interro_doublon);
$doub=mysql_num_rows($interro_doublon);
echo "doublon: $doub<br>";
 
 
if ($doub!="" )
{
   
$trouver_qte=" select quantite_demandee from caddie
  where fk_numero_session='$cle'
  and fk_numero_produit='$numero_modele'";
       
 $interro_qte=mysql_query($trouver_qte);
   
 $resultat_qte=mysql_fetch_assoc($interro_qte);
   
 $quantite_trouvee=$resultat_qte['quantite_demandee'];
   
 $laqte=$quantite[$i];
   
   
 
   
   
   
   
   
 $maj_quantite=" update caddie set       quantite_demandee=$quantite_trouvee+$laqte  
 where  quantite_demandee=$quantite_trouvee
 and fk_numero_session='$cle'
       and fk_numero_produit='$numero_modele'";
     
   echo "requete: $maj_quantite<br>";
   
     
   $interro_maj=mysql_query($maj_quantite);
 
 
 
   if (!$interro_maj)
   { echo "La mise à jour en quantité du produit a échoué";  }
   else
   { echo "La mise à jour en quantité du produit s'est déroulé avec succès"; }
   
  }
 
 
   else
   {
    $inserer_reservation=" insert into caddie (fk_numero_session, fk_numero_produit , quantite_demandee)
          VALUES     ('$cle','$numero_modele','$quantite[$i]')";
 
 
    echo "Requete: $inserer_reservation<br>";
 
     $insertion_finale=mysql_query($inserer_reservation);
 
    if (!$insertion_finale)
    { echo "L'ajout du produit au caddiea échoué";  }
    else
    { echo "L'ajout du produit au caddie s'est déroulé avec succès"; }
 
   }
 } // fin du if
 
 
 
Si vous vous embrouillez dites le moi, j'essaierai detre plus clair


 
Putain, soit plus clair, et soigne aussi l'orthographe, c'est limite illisible et fatiguant là. Refais ton message et je regarde ton problème ensuite...

Reply

Marsh Posté le 26-02-2004 à 19:46:35    

J'adore ton quote de cochon Hermes :D
 
Jokari, utilise les balises cpp et commente ton code, parce que là en effet, c'est pas très lisible :)

Reply

Marsh Posté le 26-02-2004 à 21:23:25    

le point 1 m'interpelle :
 
ma question est au milieu du code... j'ai mis des balises pour y voir qqchose
 

Code :
  1. $chercher_doublon=" select fk_numero_session,  fk_numero_produit
  2.                     from caddie c
  3.                     where fk_numero_session='$cle'
  4.                     and fk_numero_produit='$numero_modele'";
  5. echo "verif requete: $chercher_doublon<br>";
  6.      
  7. $interro_doublon=mysql_query($chercher_doublon);
  8. $resultat_doublon=mysql_fetch_assoc($interro_doublon);
  9. $doub=mysql_num_rows($interro_doublon);
  10. echo "doublon: $doub<br>";

 
Là ==> avec ORACLE j'ai toujours au moins une ligne de retournée du style "ora-xxxxx : exécution normale ".
Si c'est pareil en mysql, c'est normal que tu ne passes que dans le "else" du "if" qui suit, non ??  
 

Code :
  1. if ($doub!="" )
  2. {
  3.  
  4.   $trouver_qte=" select quantite_demandee
  5.                 from caddie
  6.                 where fk_numero_session='$cle'
  7.                 and fk_numero_produit='$numero_modele'";
  8.      
  9.   $interro_qte=mysql_query($trouver_qte);
  10.   $resultat_qte=mysql_fetch_assoc($interro_qte);
  11.   $quantite_trouvee=$resultat_qte['quantite_demandee'];
  12.  
  13.   $laqte=$quantite[$i];
  14.  
  15.   $maj_quantite=" update caddie
  16.                    set       quantite_demandee=$quantite_trouvee+$laqte 
  17.                    where  quantite_demandee=$quantite_trouvee
  18.                    and fk_numero_session='$cle'
  19.                    and fk_numero_produit='$numero_modele'";
  20.      
  21.   echo "requete: $maj_quantite<br>";
  22.   $interro_maj=mysql_query($maj_quantite);
  23.  
  24.   if (!$interro_maj)
  25.   { echo "La mise à jour en quantité du produit a échoué";  }
  26.   else
  27.   { echo "La mise à jour en quantité du produit s'est déroulé avec succès"; }
  28.    
  29. }
  30. else
  31. {
  32.   $inserer_reservation=" insert into caddie
  33.                              (fk_numero_session, fk_numero_produit , quantite_demandee)
  34.                              VALUES
  35.                              ('$cle','$numero_modele','$quantite[$i]')";
  36.   echo "Requete: $inserer_reservation<br>";
  37.   $insertion_finale=mysql_query($inserer_reservation);
  38.   if (!$insertion_finale)
  39.   { echo "L'ajout du produit au caddiea échoué";  }
  40.   else
  41.   { echo "L'ajout du produit au caddie s'est déroulé avec succès"; }
  42. }
  43. } // fin du if

Reply

Marsh Posté le 26-02-2004 à 21:25:07    

oubliez j'ai mal lu la condition :)

Reply

Sujets relatifs:

Leave a Replay

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