thomas7654 Posted January 2, 2011 Share Posted January 2, 2011 Bonjour,J'ai besoin d'aide d'un pro de php. Lors de création d'un compte je voudrais insérer certains valeurs dans une autre table qu'on va nommer table1. Voilà les champs de cette table: id username attribute op value debut_abn Je voudrais insérer: username = 'email d'utilisateur' attribute = 'User-Password' op = ':=' value = 'le_mot_de_passe' debut_abn = 'rien_pour_le_moment_ensuite_la_date_d'achat_d'un_produit' Ensuite lorsque utilisateur passe une commande je voudrais créer dans cette même table une deuxième entrée: username = 'email_tulisateur' attribute = 'session' op = ':=' value = 'ici_valeur_d_une_varibale' debut_abn = 'date_d'acha t'Si quelqu'un veut bien me prêter un coup de main ca serait sympa ;-)P.S Pour commencer: dans quels fichiers cela dois ce faire? authentication.php? autre?merci d'avance Link to comment Share on other sites More sharing options...
DevNet Posted January 2, 2011 Share Posted January 2, 2011 Bonsoir,Vous expliquer tout ça sur le forum relève d'un sacré défit. Des réponses plus ou moins rapides pourraient être données, mais si vous n'êtes pas développeur php/sql, la discussion va tourner vite à un champ de bataille.Bien cordialement Link to comment Share on other sites More sharing options...
thomas7654 Posted January 3, 2011 Author Share Posted January 3, 2011 Bonjour,Je ne suis pas un développeur mais je peux bidouiller, adapter etc j'ai seulement besoin d'être guidé :-) Pouvez vous me dire quel fichiers seront concernés pour tels modifications?merci tout de même pour votre réponse cordialement Link to comment Share on other sites More sharing options...
Vincent Decaux Posted January 3, 2011 Share Posted January 3, 2011 Il peut être pas mal de passer par les Classes, par exemple, dans la Classe Customers, tu as la fonction de création d'un compte, tu peux la modifier pour ajouter la requête nécessaire. De même dans la classe PaymentModule, tu as la méthode validateOrder() qui est appelée au paiement (à confirmer d'ailleurs car je ne suis pas sûr ?).Tu peux même surcharger les classes pour éviter de modifier le coeur de Presta. Link to comment Share on other sites More sharing options...
thomas7654 Posted January 3, 2011 Author Share Posted January 3, 2011 J'ai avancé un peu.J'ai modifié le fichier customer.php en ajoutant ceci après la ligne 112: $req = "INSERT INTO test (id, username, attribute, op, value, debut_abn) VALUES ( '', '$this->email', 'MD5-Password', ':=', '$this->passwd','') " ; mysql_query($req); Bon, ca vaut ce que ca vaut mais ca marche ;-)Maintenant je suis en train de modifier le fichier PayementModule.phpJ'ai mis ceci vers la ligne 380: $req = "INSERT INTO test (id, username, attribute, op, value, debut_abn) VALUES ( '', '$customer->email', 'Max-All-Session', ':=', 'variable','ici_une_date') " ; mysql_query($req); Ca a l'air du marcher mais vu que je test en local je ne peux pas tester avec le paypal et donc je ne suis pas sur que ca marche avec. Quoi qu'il en soit j'ai besoin votre aide pour perfectionner la deuxième requête. En effet un chaque commande cela va créer une nouvelle entré pour l'utilisateur or je voudrais que ca se passe de cette manière:Pour la première commande on laisse tel quel (ca va créer une ligne). Pour les commandes suivantes:1. Si la date dans le champ "ici_une_date" est inférieure à celle d'aujourd'hui, alors on remplace tout en faisant la somme des valeurs de champs 'variable' puis on ajoute la date courante dans 'ici_une_date'2. Si la date dans le champ "ici_une_date" est supérieure à celle d'aujourd'hui alors on remplace tout.Si quelqu'un voudrais bien m'aider....merci d'avnace Link to comment Share on other sites More sharing options...
Geoff95 Posted May 22, 2011 Share Posted May 22, 2011 Salut, déjà pour pouvoir comparer, il faut que tu récupère la base, =>Dans premier temps tu fais un Select sur l'id du client pour vérifier s'il existe dans ta table mysql_connect("server", "username", "psw"); mysql_select_db("dbname"); $retour = mysql_query('SELECT * FROM nom_de_la_table WHERE id = \'' . $id_customer . '\''); $donnees = mysql_fetch_array($retour); =>Si t'as pas de résultat (donc client inexistant dans la table) if(!$retour) { là tu met ton INSERT } =>Si il y a un résultat, comparaison des dates, je pense que le mieux est de faire un explode pour retirer le caractère qui sépare tes dates(on affiche la date en date anglaise pour pouvoir les comparer, car en date fr, le 31 Décembre 2010 (31122010) en explode est supérieur au 1 janvier 2011(01012011), ce qui est faux, tandis qu'en date anglais 20101231 < 20110101) else { $datebdd = $donnees['ici_une_date']; $date = explode("/", $datebdd); $datetoday = date(Y/m/d); $today = explode("/", $datetoday); ensuite tu compare:==>Si date inférieure à aujourd'hui if ($date < $today) { UPDATE de ta base pour les valeur de variable } ==> Si date supérieure ou égale else if ($date >= $today) { UPDATE de ta base avec la valeur de variable } } (Je vois pas bien comment ça peut être possible qu'elle soit supérieur, mais bon, les jours avances, et ne reculent pas, donc jvois pas comment une date rentrée lors d'un achat peut être supérieur à la date du jour, au mieux elle est peut être égale, mais pas supérieur)Voilà, le sujet est un peu vieux, mais au cas où tu n'aurais pas trouvé la solution depuis le temps, ça donnerait quelque chose dans le genre (la synthaxe que j'ai mis n'est absolument pas sûr, à vérifier pour le explode).Geoffrey. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now