Besoin d'un conseil pratique en PHP

passion
WRInaute accro
WRInaute accro
 
Messages: 3105
Inscription: 6 Jan 2006

Besoin d'un conseil pratique en PHP

Message le Dim Juil 16, 2006 12:01

Bonjour,
J'ai crée un site d'annonce en ligne en PHP. J'ai 4 formules d'abonnement et en fonction de ces formules, le délai d'obtention de l'annonce varie de 1 à 6 mois. Donc, pour me simplifier la vie au niveau de mon "administration", j'ai crée sur ma table Msql, au moment de l'inscription d'un membre, un champs 'temps" avec la fonction time() qui me récupère le moment précis ou mon membre a été validé.....delà, je souhaitai via mon "administration", créer un bouton "Mise à jour" pour faire une requête sur ma table et ainsi en fonction du time() actuel et de la variable $temps faire des conditions!!!

mais c'est un peu fastidieux et obligeant d'actualiser souvent!!!

Auriez-vous des conseils avisés dans ce sens pour m'aider??? pour en faire une automatisation

Merci :D


finstreet
WRInaute accro
WRInaute accro
 
Messages: 16999
Inscription: 10 Juil 2005

Message le Dim Juil 16, 2006 12:09

tu crées un champ Creation où tu mets la date de début en timestamp... et tu rajoutes un champ Fin où tu mets la date de fin en timestamp

il te suffit de rajouter tes 6 mois au temps actuel... et comme ca, tu n'affiches que les annonces dont le temps actuel est inférieur au champ Fin

J'ai été clair ?


mowmow
WRInaute impliqué
WRInaute impliqué
 
Messages: 975
Inscription: 3 Nov 2004

Message le Dim Juil 16, 2006 12:10

Personellement pour les dates précises je conseille vivement les champs DATE ! Si tu veux transformer : fait un UPDATE table SET date_timestamp (ton champ avec le timestamp quoi :)) = FROM_UNIXTIME(date_timestamp)

Et après converti ton champ en DATE.

Bon ok ce n'est pas le sujet, mais je n'ai pas trop compris ta question, j'ai pas compris ce que tu voulais faire avec ton champ :?


Bacteries
WRInaute passionné
WRInaute passionné
 
Messages: 1369
Inscription: 27 Mai 2004

Message le Dim Juil 16, 2006 13:23

Pareil je vois pas la difficulté, la solution de finstreet me semble évidente.

Si tu veux supprimer les annonces une fois leur date passée un cron chaque nuit et c'est réglé.

passion
WRInaute accro
WRInaute accro
 
Messages: 3105
Inscription: 6 Jan 2006

Message le Dim Juil 16, 2006 13:23

merci de me répondre :D

Oui, c'est une bonne idée finstreet, voici ma façon de procéder:
1/ récupération du "time()" actuel
2/ création de la variable $duree="777600"; (3mois converti en secondes)
3/ créer $limite_annonce=time()+$duree
4/ puis transmission jusqu'à l'enregistrement dans la table msql

Je viens d'essayer et ma date d'enregistrement de l'annonce est bien datée du jour 16/07/2006 mais par contre, ma durée de validité est fixée au 25/07/2006

C'est quoi??? un prob dans le calcul de la durée de validité???? ($limite_annonce)


karak
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 355
Inscription: 6 Aoû 2005

Message le Dim Juil 16, 2006 13:25

La cron table devrait t'aider pour l'automatisation.

Plus d'info ici : http://www.webrankinfo.com/forums/viewtopic_2086.htm
et dans Google.


Bacteries
WRInaute passionné
WRInaute passionné
 
Messages: 1369
Inscription: 27 Mai 2004

Message le Dim Juil 16, 2006 13:33

passion pour ton nombre de seconde t'es dans les choux là.

x*31*24*60*60

Avec x ton nombre de mois (bon arrondis à 31 jours, y'a moyen de faire mieux en calculant le nombre de jour exacte)

passion
WRInaute accro
WRInaute accro
 
Messages: 3105
Inscription: 6 Jan 2006

Message le Dim Juil 16, 2006 14:43

karak a écrit:La cron table devrait t'aider pour l'automatisation.

Plus d'info ici : http://www.webrankinfo.com/forums/viewtopic_2086.htm
et dans Google.


Merci c'est exactement ce que je recherche et merci à vous toutes et tous pour votre soutien :P

j'ai réalisé mon bout de script pour délimiter dans le temps le délai de mon annonce en ligne...merci

DaMonkey
WRInaute discret
WRInaute discret
 
Messages: 79
Inscription: 20 Fév 2004

Message le Lun Juil 17, 2006 7:53

Pour ton calcul de temps de 3 mois :

$duree = mktime (0,0,0,3,0,0);

Dans l'ordre des paramètres : heures, minutes, secondes, mois, jours, années.

=> $limite_annonce=time()+$duree;

ou (plus direct)

=> $limite_annonce=time()+mktime (0,0,0,3,0,0);

Comme ca, pas de problème de calcul ;)


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités