Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1144 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  sessions et insertion dans la bd

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

sessions et insertion dans la bd

n°918276
attentio
Posté le 08-12-2004 à 20:11:29  profilanswer
 

bonsoir,  
voila mon ptit soucis
en fait, C la derniere page d'un site de vente en ligne, elle appelle une fonction, qui elle, est chargée d'inserer dans la base de donne les coordonnees du clients et ses achats via les sessions, mais le soucis C que si le client actualise la page alors, il va inserer une nouvelle commande identique.
(je ne veux pas detruire la session apres cette fonction parce que l'utilisateur peut avoir envie de changer son mode de paiement).
 
alors j'avais pensé faire un truc du genre :
si une commande avec le meme nom, le meme nombre d'articles,et le meme prix existe dans la bd  
alors ne rien faire
sinon inserer_commande

mais le client peut avoir envie de passer la meme commande
 
alors comment dois je m'y prendre, jouer avec les sessions toujours presentent,mon id de commande  :??:  
 
merci de votre aide :ange:


Message édité par attentio le 24-03-2005 à 20:48:29

---------------
L'ordinateur a de la mémoire mais aucun souvenir ...
mood
Publicité
Posté le 08-12-2004 à 20:11:29  profilanswer
 

n°918318
naceroth
Posté le 08-12-2004 à 21:11:47  profilanswer
 

Pourquoi ne pas ajouter l'id de commande à la session tout simplement ?

n°918361
attentio
Posté le 08-12-2004 à 22:07:20  profilanswer
 

be non, je peux pas l'idee de la commande s'incremente dans la bd, il n'existe pas avant


Message édité par attentio le 08-12-2004 à 22:07:58
n°918432
Xav_
The only one...
Posté le 08-12-2004 à 22:57:03  profilanswer
 

ben ton idée du contyrole me parait bonne, si la commande existe déjà (meme caractéristique), tu affiche au visiteur qu'une commande identique vient d'etre passée, et un bouton pour lui permettre de valider si effectivement il veut repasser la meme...

n°918433
naceroth
Posté le 08-12-2004 à 22:58:52  profilanswer
 

Oui mais non, une fois ta commande crée dans la db, qu'est ce qui t'empêche de récupérer l'id et de l'ajouter à la session ?  
 
Puis quand tu enregistres la commande, il te suffit de vérifier si un id est présent dans les données de session.

n°918538
attentio
Posté le 09-12-2004 à 02:22:59  profilanswer
 

non ca peut pas marcher :pt1cable:  
regarde
ma page a la fois  insere la commande et affiche la validation de la commande

Code :
  1. //page recap
  2. <?
  3. inserer_commande();
  4. echo'mr'.$_SESSION['nom'].' votre commande n°'.$_SESSION['commande_id'].'a bien ete enregistré.
  5. ?>


 

Code :
  1. // page fonctions
  2. <?
  3. function inserer_commande(){
  4. //insertion dans la db
  5. insert into clients ...
  6. insert into article_commande ...$prix, $mode_paiement
  7. // requete  numero de commande
  8.   if(mysql_numrows($resultat_commande)>0){
  9.   $res = mysql_fetch_array($resultat_commande);
  10.     $commande = $res['commande_id'];
  11. }
  12.   else
  13.     return false;
  14. $_SESSION['commande_id']=$commande_id
  15. } ?>


donc ce qu'il faut c'est que l'utilisateur en actualisant la page n'insere pas une nouvelle commande identique dans la db, par contre il peut revenir en arriere pour changer son mode de paiement ou meme ces articles , et la du coup, ca crera une nouvelle commande.
 
j'espere avoir été clair
 
merci


Message édité par attentio le 09-12-2004 à 02:25:35
n°918539
naceroth
Posté le 09-12-2004 à 02:37:36  profilanswer
 

Là, c'est même pas un problème de php, c'est juste une question de logique :)
 
Schématiquement :

Code :
  1. function gestion_commande(){
  2. if (isset($_SESSION['commande_id'])){
  3.    update machin value truc where id = $_SESSION['commande_id']
  4. } else {
  5.    insert blablabla
  6.    $_SESSION['commande_id'] = mysql_insert_id()
  7. }
  8. }


 
(et sépare la validation de l'affichage du message de validation)

n°918540
attentio
Posté le 09-12-2004 à 02:44:53  profilanswer
 

oui en effet ... je dois etre torturé ... ca parait si simple maintenant !
merci a toi


Message édité par attentio le 09-12-2004 à 02:45:28
n°918834
attentio
Posté le 09-12-2004 à 15:05:55  profilanswer
 

oui mais probleme !
si je fais un
update commande value truc where id = $_SESSION['commande_id']
et que le client decide de mettre d'autres articles dans son caddie, l'update ne va ajouter ces articles dans la table commande.
comment dois je m'y prendre ... est ce que le mieux serais de supprimer ces articles dont le numero de commande est =ID puis les inserer de nouveau.
 
merci de votre aide
 

n°919085
naceroth
Posté le 09-12-2004 à 18:43:24  profilanswer
 

ou de flager les articles commandés déjà encodé d'une manière ou d'une autre (préférable à la suppression/insertion à mon avis).

mood
Publicité
Posté le 09-12-2004 à 18:43:24  profilanswer
 

n°919147
attentio
Posté le 09-12-2004 à 19:39:37  profilanswer
 

qu est ce que tu appellle "FLAGER"???

n°919179
naceroth
Posté le 09-12-2004 à 20:24:14  profilanswer
 

flager, du verbe anglais "to flag" marquer, signaler. En clair, ajouter une variable à ta session qui indique si l'article a déjà été encodé. Le comment dépend de la manière dont tu gères tes commandes dans ta bd :)

n°919474
Xav_
The only one...
Posté le 10-12-2004 à 11:35:43  profilanswer
 

à croire que notre ami attentio n'a jamais fait de CTF (capture the flag) à Quake... :D


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°919480
Sebastien
Posté le 10-12-2004 à 11:44:31  profilanswer
 

au lieu de detruire la session, tu detruis simplement le caddie tout simplement.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  sessions et insertion dans la bd

 

Sujets relatifs
Bug de sessions avec freeProblèmes d'insertion
Gérer les sessions sans cookies ????[PHP] Sessions ne marchent pas
Probleme Insertion code stats dans interface htmlsessions PHP chez free
[shell] detecter l'insertion d'un cdrom en shellmenu deroulant ->selected avec les sessions[resolu]
insertion de la date a l'ouverture du fichier (Excel)!!message d'insertion génant dans un code VBA
Plus de sujets relatifs à : sessions et insertion dans la bd


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR