execution automatique de pages:

  • Auteur de la discussion Auteur de la discussion sim100
  • Date de début Date de début
WRInaute passionné
Bonjour
En fait, j'ai 2 petites questions, ce serait super si vous saviez :o
1) J'ai un site ou j'ai des personnes qui s'inscrivent. Via la partie admin, je peux voir la liste des inscrits. Mais je voudrais que dans le tableau que j'affiche, une ligne soit en gris et celle du dessous en gris plus clair, alternativement, afin que le tableau soit bien lisible.
Donc j'ai un boucle for (i=1, 1<20, i=i+1) { je reccupere le tableau }
Et je pensais faire dans le tableau: un si i est pair alors la ligne est grise, si i est impaire la ligne est grise plus clair. Mais comment savoir si i est paire opu impaire.
Je pensais: si i/2 donne un resultat entier...
Si qqun a une idee.

2) Lorsqu'un abonnement est fini, le compte de la personne a cette date doit se detruire automatiquement. Comment faire. Meme si personne n'est sur le site. Y a t'il un moyen?


Merci beaucoup pour tout :P
 
WRInaute accro
- Pour l'affichage "une ligne sur deux", tu a raison.
si round(i/2)==i/2 alors ma_ligne=gris
sinon ma_ligne=gris_clair

- pour le désabonnement, tu peux par exemple effectuer une tache "cron" qui va executer ta requete (DELETE FROM table WHERE (date_abonn+1an)>TODAY) (je ne me rappelle plus la requete exacte, je te la donne demain si personne ne te la donne d'ici là)
 
WRInaute passionné
MERCI

Merci beaucoup, j'attends demain :P
Juste un petit detail: c'est quoi exactement round(i/2)==i/2? Cela renvoie quoi

Merci encore
 
A
Anonymous
Guest
Juste un petit detail: c'est quoi exactement round(i/2)==i/2? Cela renvoie quoi

et ben fais le avec i=11 et i=12 et tu comprendras par toi-même, c'est bien plus jouissif :wink:

sinon il y a l'opérateur modulo qui fait ça tout seul...

if (i%2 == 0){..} else {..}

si c'est du php tu penseras à mettre $i, pas i tout court :roll:
 
WRInaute accro
par exemple, en php:

----------------------------------
$i=5

round($i/2) donne 2 (ou 3, sait plus de mémoire)
$i/2 donne 2.5

donc round($i/2) n'est pas égale à ($i/2), donc $i est impair
----------------------------------
$i=4

round($i/2) donne 2
$i/2 donne 2

donc round($i/2) est égale à ($i/2), donc $i est pair
-----------------------------------

La fonction round($i) permet d'arrondir son argument $i (mais c en PHP, a voir sur quel langage tu bosse)


Pareil pour la requete que je vais te filer, c'est du SQL (MySQL).
 
WRInaute passionné
Ben si i est pair, alors i/2 sera égal à round(i/2) (puisqu'un entier arrondi ça reste cet entier). Donc ce test sert à voir si i est pair.
Pour ma part j'aurais utilisé if ($i % 2 == 0) mais bon ;)

-> http://www.php.net/manual/fr/language.o ... hmetic.php

Sinon pour la requête c'est
Code:
DELETE FROM ta_table WHERE (date_abonnement + INTERVAL 1 YEAR) > NOW()
(enfin, modifie le nom du champ et la durée selon tes besoins)

-> http://www.mysql.com/doc/en/Date_and_ti ... tions.html

Tu n'es pas forcément obligé de faire un CRON, tu pourrais par exemple contrôler la validité de l'abonnement (et éventuellement effacer le compte) lorsque la personne essaye de se connecter. Auquel cas tu ferais d'abord une requête pour vérifier la validité du compte et s'il n'est pas valide tu ferais un DELETE sur l'identifiant du compte. A toi de voir.

Fred
 
WRInaute passionné
Pour blman

blman a dit:
- Pour l'affichage "une ligne sur deux", tu a raison.
si round(i/2)==i/2 alors ma_ligne=gris
sinon ma_ligne=gris_clair

- pour le désabonnement, tu peux par exemple effectuer une tache "cron" qui va executer ta requete (DELETE FROM table WHERE (date_abonn+1an)>TODAY) (je ne me rappelle plus la requete exacte, je te la donne demain si personne ne te la donne d'ici là)

Bonjour
Tu as ton exemple de code blman SVP.
Je te remercie
 
WRInaute discret
il y avait mieux :

en javascript (par exemple mais ça marche dans tous les langages)

Code:
<script>
colors = ["DDDDDD","EEEEEE"];

for (i=0; i<20; i++) {
  document.write("<tr bgcolor='#"+colors[i%2]+"'><td>&</td></tr>")
} 
</script>
 
WRInaute passionné
C'est tout sauf mieux...

-> c'est dépendant de la config visiteur
-> le code produit est obsolète et non conforme aux standards

Fred
 
WRInaute discret
1. j'ai précisé que ça pouvait marcher autrement qu'en javascript. Ce que je donne ici c'est l'algorithme histoire d'élever le niveau en prog.

2. le code produit, j'm'en fous j'ai mis le code juste pour expliquer où il fallait le mettre.

tu le veux en PHP?

Tiens comme tu n'aime pas le code en voici un autre pour faire un arc en ciel :

ça sert à rien mais ça me fais marrer :D

Code:
<script>
colors = ["CC0000","CC6600","FFFF00","00FF00","0000FF"]

for (i=0; i<colors.length; i++) {
  document.write("<tr bgcolor='#"+colors[i%colors.length]+"'><td>&</td></tr>")
} 
</script>


PS : il y un dans mon code moins d'hérésie que dans ceux donner précédemment.

genre i=i+1 ou encore une boucle qui commence à 1 :D et je ne parle même pas de l'utilisation de round pour le pair/impair
 
WRInaute passionné
duch a dit:
1. j'ai précisé que ça pouvait marcher autrement qu'en javascript. Ce que je donne ici c'est l'algorithme histoire d'élever le niveau en prog.

La précision n'y était pas au moment où je répondais, tu devais être en train de l'ajouter ;)
Mais sinon je suis d'accord pour l'algo.

Fred
 
WRInaute discret
oui effectivement, j'ai éditer mon post juste après l'avoir posté, on a dû se croiser.

au temps pour moi
 
WRInaute passionné
Pardon

:oops:
Desole pour avoir cree le nouveau poste, je ne savais pas.

Ce que tu m'as propose est tres bien, je voulais juste avoir la solution que me proposait blman, c'est tout.

Desole encore
Merci
 
Discussions similaires
Haut