Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/01/2011, 10h02   #1
Invité de passage
 
Inscription : novembre 2010
Messages : 40
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 40
Points : 3
Points : 3
Par défaut Aide pour créer une condition

Bonjour,

Toujours dans mon projet de gestion des abonnements je reviens vers vous une dernière fois.

Alors voila, lorsque un utilisateur s'inscrit une ligne dans la table radcheck est créé.

Ensuite, lorsque utilisateur passe une commande (souscris un abonnement), une deuxième ligne est créé dans la même table.

Voici le code que j'utilise pour insérer la date d'expiration:
Code :
1
2
3
4
5
6
7
8
9
10
 
$a = time() ;
	 $b = $product['reference'];
	 $addition = $a + $b;
	 $abonnement=date('M d Y H:i:s', $addition);
 
 
		$req = "INSERT INTO radcheck (id, username, attribute, op, value) 
            VALUES ( '', '$customer->email', 'Expiration', ':=', '$abonnement')"; 
            mysql_query($req);
Et donc maintenant je cherche à faire la choses suivante:

1. si c'est la première commande on insère la ligne avec la date d'expiration.

2. si c'est deuxième commande (le renouvellement d'abonnement) et si la date actuelle est inferieur à celle d'abonnement (présente dans le champ value) alors on UPDATE on rajoutant la durée d'abonnement sur celle de champ value.

3. et donc si c'est la deuxieme commande est la date est supérieur ou égal à celle de champ value alors tout simplement on la remplace.

Bon, je sais que je demande à faire le boulot à ma place mais cela devient vraiment trop compliqué pour moi...

Merci à ceux qui prendre le temps pour ce pencher sur mon problème

Images attachées
Type de fichier : png 2.png (11,6 Ko, 3 affichages)
Type de fichier : png 1.png (7,4 Ko, 0 affichages)
manu_789 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2011, 10h39   #2
Membre régulier
 
Avatar de Stopher
 
Homme christophe de saint leger
Responsable de service informatique
Inscription : juin 2004
Messages : 105
Détails du profil
Informations personnelles :
Nom : Homme christophe de saint leger
Âge : 26
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Industrie

Informations forums :
Inscription : juin 2004
Messages : 105
Points : 82
Points : 82
Envoyer un message via MSN à Stopher Envoyer un message via Skype™ à Stopher
Salut ,

je pense que la logique serait la suivante :

le champ username doit être je suppose unique et indexé , si c'est le cas , tu commences par un select , suivant le resultat :

-> pas de résultat = insert
-> résultat : comparaison de la date , et en fonction > ou < tu fais l'Update qui va bien .

Good Luck,

Ch.
__________________
Lindev.fr
Stopher est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2011, 10h46   #3
Invité de passage
 
Inscription : novembre 2010
Messages : 40
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 40
Points : 3
Points : 3
Justement il aurait deux lignes avec même username.

Une pour identification et deuxième pour gestion d'abonnement. Je pense qu'il faudrait vérifier la présence de la valeur "expiration" dans le champ value pour un utilisateur donné, mais pour ce qui est la syntaxe....
manu_789 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2011, 10h48   #4
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Quelle difficulté as-tu pour traduire ce que tu as décris en lignes de code ?

Tu lis la base pour recuperer l'expiration existante
1 - tu n'as rien dans la base, tu fais un insert
2-3 - tu as quelque chose, tu fais l'update.

Au passage, même si tu n'utilises pas un champ DATETIME, stocke tes dates au format php/mysql : Y-m-d H:i:s

Citation:
Justement il aurait deux lignes avec même username.
il faudrait connaitre le minimum vital des syntaxes avant de te lancer
Code sql :
SELECT value FROM radcheck WHERE username = xxxxx AND attribute = expiration
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2011, 10h51   #5
Membre régulier
 
Avatar de Stopher
 
Homme christophe de saint leger
Responsable de service informatique
Inscription : juin 2004
Messages : 105
Détails du profil
Informations personnelles :
Nom : Homme christophe de saint leger
Âge : 26
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Industrie

Informations forums :
Inscription : juin 2004
Messages : 105
Points : 82
Points : 82
Envoyer un message via MSN à Stopher Envoyer un message via Skype™ à Stopher
Et tu ne peux pas fusionner les deux ou les séparer dans des tables différentes par exemple :

Une table identification
Une table Abonnement

Ce serait plus simple à gérer pour toi je pense non ?

Ch.
__________________
Lindev.fr
Stopher est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2011, 10h52   #6
Invité de passage
 
Inscription : novembre 2010
Messages : 40
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 40
Points : 3
Points : 3
La difficulté que j'ai, ce que je ne suis pas de tout développeur en php. Donc je sais ce qu'il faudrait faire mais je ne sais pas de tout comment...

je ne peux pas ni séparer ni fusionner, car c'est la table utilisé par les modules de freeradius
manu_789 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h46.


 
 
 
 
Partenaires

Hébergement Web