| |
|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
mahdivitche WRInaute passionné

Inscrit le: 06 Jan 2008 Messages: 570 Localisation: Marrakech maroc
|
Posté le : Sam Mai 17, 2008 20:27 Sujet du message: script en asp |
|
|
bonjour
je besoin d'un script en asp qui permet de boucle sur les jour de l'annee
exemple :
for i=1 to 12 / pour les mois
for j=1 to 30 ( ou 28 ou 29 ou 30 ou 31) / pour les jour
n= j & "/" & i & "/2008"
next
next
alors le problme si dans le boucle for j ( si je met 30 alors mois 2 il ya 29 ..... )
comment faire pour resoudre se probleme ?
merci d'avance |
|
| |
|
 |
Marie-Aude WRInaute accro

Inscrit le: 05 Juin 2006 Messages: 3492 Localisation: More than a plastic girl
|
Posté le : Sam Mai 17, 2008 21:17 Sujet du message: script en asp |
|
|
| POurquoi ne pas commencer au premier janvier et utiliser les dates directement avec un format ? |
|
| |
|
 |
mahdivitche WRInaute passionné

Inscrit le: 06 Jan 2008 Messages: 570 Localisation: Marrakech maroc
|
Posté le : Sam Mai 17, 2008 21:30 Sujet du message: script en asp |
|
|
merci pour votre reponse
mais moi je veut calculer le nombe des adresse ip visite mon site pour chaque mois pour cela je crée un tableau qui contient deux champ ( ip , date )
et je veut afficher le nombre de visie pour chaque mois
je fait le code suivant
dim n[12]
for i=1 to 12
for j=1 to 30 ( ici le probleme )
req="select count(ip) as nb ........... datee =" & j & "/" & i & "/2008"
rsc.execute req
n(i)=n(i)+rsc("nb")
next
next
merci d'avance |
|
| |
|
 |
SuperCureuil WRInaute passionné

Inscrit le: 09 Mar 2007 Messages: 661 Localisation: Bxl, Belgique
|
Posté le : Dim Mai 18, 2008 11:41 Sujet du message: script en asp |
|
|
Salut,
La date me semble facultative dans ce que tu veux faire, du moins si j'ai bien compris.
| Citation: |
| je veut calculer le nombe des adresse ip visite mon site pour chaque mois |
Comprends pas trop l'intérêt mais bon, ça fait travailler les neurones, c'est gai
De fait, tu crées une table id | ip (et éventuellement date)
Quand le visiteur arrive, tu récupères son ip, tu checkes ta table pour voir si cette ip s'y trouve déjà, si oui tu ne fais rien, sinon tu ajoutes avec un simple INSERT.
| Citation: |
alors le problme si dans le boucle for j ( si je met 30 alors mois 2 il ya 29 ..... )
comment faire pour resoudre se probleme ? |
Ben tu récupères la date en cours et tu vérifies si le mois en cours est un mois en 28/29 ou 30 ou 31 jours, et avec une ou deux conditions, tu adaptes ton script d'après le résultat. C'est un peu cra cra comme soluce et je ne vois toujours pas l'intérêt.
Si tu veux simplement ajouter la date, y'a des fonctions dédiées pour ça, pourquoi vouloir commencer à jouer avec des boucles ? |
|
| |
|
 |
mahdivitche WRInaute passionné

Inscrit le: 06 Jan 2008 Messages: 570 Localisation: Marrakech maroc
|
Posté le : Lun Mai 19, 2008 17:26 Sujet du message: script en asp |
|
|
merci SuperCureuil pour votre reponse :
la solution donc est :
| Code: |
<%
annee=clng(Request.QueryString("annee"))
set cnx=server.createobject("adodb.connection")
connstring="DRIVER={Microsoft Access Driver (*.mdb)}; " & "DBQ=" & Server.MapPath(".") & "/ip.mdb"
cnx.open connstring
Dim nb(12)
for i=1 to 12
nb(i)=0
next
for i=1 to 12
Select Case (i)
'Avril, Juin, Septembre, Novembre
Case 4, 6, 9, 11
NbJourDansMois = 30
' Février
Case 2
' Si Divisible par 400 alors Bisextile
if (annee Mod 4 = 0) And (annee Mod 100 <> 0) Or (annee Mod 400 = 0) Then
NbJourDansMois = 29
Else
NbJourDansMois = 28
End if
' Les autres mois
Case Else
NbJourDansMois = 31
End Select
for j=1 to NbJourDansMois
req_sql="SELECT Count(ip) AS nbvi ,datee FROM visites GROUP BY datee HAVING(datee=# " & i & "/ " & j & "/ " & annee & "#)"
set rsc = cnx.execute(req_sql)
if not(rsc.EOF and rsc.BOF) then
nb(i)=nb(i)+rsc("nbvi")
end if
next
next
%>
<html>
<body>
<table border="2">
<tr>
<% for i=1 to 12 %>
<td> <%=i%> </td>
<% next %>
</tr>
<tr>
<% for i=1 to 12 %>
<td width="40"><%=nb(i)%></td>
<%next%>
</tr>
</table></body></html>
Si tu veux simplement ajouter la date, y'a des fonctions dédiées pour ça, pourquoi vouloir commencer à jouer avec des boucles ?
qu'elle les fonctions qui peut utilisée ?
y'a qu'il qu'un qui peut simplifie pour moi ce code ?
merci d'avance
|
|
|
| |
|
 |
mahdivitche WRInaute passionné

Inscrit le: 06 Jan 2008 Messages: 570 Localisation: Marrakech maroc
|
Posté le : Lun Mai 19, 2008 17:29 Sujet du message: script en asp |
|
|
merci SuperCureuil pour votre reponse :
la solution donc est :
| Code: |
<%
annee=clng(Request.QueryString("annee"))
set cnx=server.createobject("adodb.connection")
connstring="DRIVER={Microsoft Access Driver (*.mdb)}; " & "DBQ=" & Server.MapPath(".") & "/ip.mdb"
cnx.open connstring
Dim nb(12)
for i=1 to 12
nb(i)=0
next
for i=1 to 12
Select Case (i)
'Avril, Juin, Septembre, Novembre
Case 4, 6, 9, 11
NbJourDansMois = 30
' Février
Case 2
' Si Divisible par 400 alors Bisextile
if (annee Mod 4 = 0) And (annee Mod 100 <> 0) Or (annee Mod 400 = 0) Then
NbJourDansMois = 29
Else
NbJourDansMois = 28
End if
' Les autres mois
Case Else
NbJourDansMois = 31
End Select
for j=1 to NbJourDansMois
req_sql="SELECT Count(ip) AS nbvi ,datee FROM visites GROUP BY datee HAVING(datee=# " & i & "/ " & j & "/ " & annee & "#)"
set rsc = cnx.execute(req_sql)
if not(rsc.EOF and rsc.BOF) then
nb(i)=nb(i)+rsc("nbvi")
end if
next
next
%>
<html>
<body>
<table border="2">
<tr>
<% for i=1 to 12 %>
<td> <%=i%> </td>
<% next %>
</tr>
<tr>
<% for i=1 to 12 %>
<td width="40"><%=nb(i)%></td>
<%next%>
</tr>
</table></body></html>
|
Si tu veux simplement ajouter la date, y'a des fonctions dédiées pour ça, pourquoi vouloir commencer à jouer avec des boucles ?
qu'elle les fonctions qui peut utilisée ?
y'a qu'il qu'un qui peut simplifie pour moi ce code ?
merci d'avance
[/u] |
|
| |
|
 |
| |
|
|
|
|
Autres sujets de discussion :
|
|