Jump to content

PHP inserer les valeurs


Recommended Posts

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

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

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

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

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.php

J'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

  • 4 months later...

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...