Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1578 connectés 

  FORUM HardWare.fr
  Programmation
  ASP

  Requete Count() et affichage ASP

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Requete Count() et affichage ASP

n°1410144
hyptnos
GT : Gui iom
Posté le 20-07-2006 à 13:19:44  profilanswer
 

Bonjour tout le monde.
 
Je débute dans l'ASP et je me trouve face a un probleme. J'utilise une base de donné Mysql. J'ai fait des pages d'ajout dans la base de donné et de visu de ce qui s'y trouve (après ajout).
 
pas de souci les insertions se font bien et ensuite je vois bien ce que j'ai affiché et tous ca en asp.
 
Maintenant j'aimerais connaitre le nombre d'enregistrement qui se trouve dans ma table intervention.
 
Alors j'ai fait ca
 

Code :
  1. <%@ Language = "VBScript" %>
  2. <% Response.Buffer = True %>
  3. <html>
  4. <%
  5. Set conn=Server.CreateObject("adodb.connection" )
  6. DSN="DSN=intervention;"
  7. conn.open DSN
  8. sql1 = "SELECT COUNT(*) as nb FROM intervention WHERE years = '2004'"
  9. Conn.execute sql1
  10. Response.Write (nb)
  11. %>
  12. </html>


 
Lorsque j'appel la page rien ne s'affiche page totalement blanche. Pourquoi?  je n'ai meme pas d'erreur de compilation ou je ne sais quoi
 
:(

mood
Publicité
Posté le 20-07-2006 à 13:19:44  profilanswer
 

n°1410320
hyptnos
GT : Gui iom
Posté le 20-07-2006 à 15:48:20  profilanswer
 

up

n°1410549
Tenebrae_A​ngelus
Posté le 20-07-2006 à 18:42:28  profilanswer
 

Bonjour,
 
nb (ligne 14) est une variable, n'est-ce pas? Ou est ce que tu lui donne sa valeur?
 
Sylvain.


Message édité par Tenebrae_Angelus le 20-07-2006 à 18:43:42
n°1410552
MagicBuzz
Posté le 20-07-2006 à 18:53:29  profilanswer
 

.execute te ramène un recordset.
déjà, toi tu ne le récupère pas.
ensuite, un recordset est un mélange de stream et de collection.
 
donc :
 
set rs = conn.execute(...)
if not rs.EOF then
  response.write rs("nb" )
end if

n°1410774
hyptnos
GT : Gui iom
Posté le 21-07-2006 à 08:10:42  profilanswer
 

Super merci beaucoup MagicBuzz ca marche comme ca?
 
Mais pourrais tu prendre 2 minutes pour m'expliquer le fonctionnement de la condition if not rs.EOF ??
En gros je comprend que l'on test le resultat de la requete. Si la requete est ok on renvoie le resultat (et encore je me trompe peut etre) mais le EOF sert à quoi? que représente t'il ?
 
Merci

n°1410802
Flyman30
Posté le 21-07-2006 à 09:17:09  profilanswer
 

EOF = End Of File (fin du fichier en Français)
le test est donc = si on est pas à la fin du fichier alors on affiche le résultat ;)

n°1410820
hyptnos
GT : Gui iom
Posté le 21-07-2006 à 09:38:04  profilanswer
 

Merci Flyman
 
Sinon autre problème j'ai fait mon tableau pour les statistique que je veux afficher c'est a dire du genre
Nb intervention pour 2004, 2005, 2006 et prochainement 2007 (je prepare le terrain) et cela egalement juste pour le Hardware et juste pour le Software (pas de souci je rajoute une clause Where)
 
Donc avec la solution donné impeccable les resultats s'affiche bien. Cela dit après il faut que je fasse un pourcentage après du nb hardware et par année.
Donc il faut que je prenne mon nombre total que je divise par le nb hard et que je multiplie par 100  
 
Mais le souci c'est que je ne peux pas recupérer mes variable nb puisqu'elle sont a l'intérieur de la condition.
 
Comment je puis faire? voici un bout de code
 
En regardant vers le bas il y a une colone qui se nomme pourcentage Hardware donc j'aimerai recupérer la valeur du nb de 2004 ainsi que la valeur du NB 2004 hardware pour en faire le calcul comment faire?
 
Je sais c'est pas très claire mais je sais pas trop comment explique :(
 

Code :
  1. <td align="center" width="110">
  2.  <%
  3.  sql2007 = "SELECT COUNT(intervention.years) as nb FROM intervention Where years = '2007'"
  4.  set rs = conn.execute(sql2007)
  5.  if not rs.EOF then
  6.  response.write rs("nb" )
  7.  end if
  8.  %>
  9.   </td>
  10.  </tr>
  11.  <tr>
  12.   <td align="center" width="350"><i><u> Nombre d'intervention Hardware </u></i></td>
  13.   <td align="center" width="110">
  14.  <%
  15.  sql2004h = "SELECT COUNT(intervention.years) as nb FROM intervention Where years = '2004' AND nom_cat = 'Hardware'"
  16.  set rs = conn.execute(sql2004h)
  17.  if not rs.EOF then
  18.  response.write rs("nb" )
  19.  end if
  20.  %>
  21.   </td>
  22.   <td align="center" width="110">
  23.  <%
  24.  sql2005h = "SELECT COUNT(intervention.years) as nb FROM intervention Where years = '2005' AND nom_cat = 'Hardware'"
  25.  set rs = conn.execute(sql2005h)
  26.  if not rs.EOF then
  27.  response.write rs("nb" )
  28.  end if
  29.  %>
  30.   </td>
  31.   <td align="center" width="110">
  32.  <%
  33.  sql2006h = "SELECT COUNT(intervention.years) as nb FROM intervention Where years = '2006' AND nom_cat = 'Hardware'"
  34.  set rs = conn.execute(sql2006h)
  35.  if not rs.EOF then
  36.  response.write rs("nb" )
  37.  end if
  38.  %>
  39.   </td>
  40.   <td align="center" width="110">
  41.  <%
  42.  sql2007h = "SELECT COUNT(intervention.years) as nb FROM intervention Where years = '2007' AND nom_cat = 'Hardware'"
  43.  set rs = conn.execute(sql2007h)
  44.  if not rs.EOF then
  45.  response.write rs("nb" )
  46.  end if
  47.  %>
  48.   </td>
  49.  </tr>
  50.  <tr>
  51.   <td align="right" width="350"><i> % interventions Hardware </i></td>
  52.   <td align="center" width="110"> </td>
  53.   <td align="center" width="110">  </td>
  54.   <td align="center" width="110">  </td>
  55.   <td align="center" width="110">  </td>
  56.  </tr>

n°1411059
hyptnos
GT : Gui iom
Posté le 21-07-2006 à 13:24:31  profilanswer
 

En gros ce que je voulais essayé de faire comprendre c'est comment je peux faire pour récupérer ma variable nb un peu plus loin dans le script sans refaire la requete.
 
Merci d'avance
 
Edit : Je dis peut etre une connerie et si je fait un truc du genre

Code :
  1. if not rs.EOF then
  2.           tt_2004 = response.write rs("nb" )
  3.         end if
  4.    ...
  5.    ...
  6.    ...
  7.    ...
  8. Response.Write tt_2004


 
Est ce que cela valide?
 
EDIT 2 :
 
Bon bas non ca ne marche pas voila ce qu'il me repond

Citation :


Erreur de compilation Microsoft VBScript error '800a0401'  
 
Fin d'instruction attendue  
 
/stat_gen.asp, line 37  
 
tt_2004 = response.write rs("nb" )
-----------------------------^


 
Une idée ?


Message édité par hyptnos le 21-07-2006 à 13:30:33
n°1411188
hyptnos
GT : Gui iom
Posté le 21-07-2006 à 16:38:18  profilanswer
 

C'est bon j'ai trouver ma bétise  
tt_2004 = rs("nb" )
 
Ensuite partout dans la page je peux recuperer la valeur en faisant
Response.Write (tt_2004)
 
Par contre maintenant probleme
 
tt_2004 c'est le nombre d'intervention en 2004
tth_2004 c'est le nombre d'interention Hardware en 2004
 
Donc j'ai créer une fonction pour me calculé la moyenne
 

Code :
  1. <%
  2. Function CalcMoy(tt,nb)
  3. CalcMoy = (nb / tt) * 100
  4. END FUNCTION
  5. %>


 
Mais je n'arrive pas à appeler la fonction dans le corp
 
Je fais pourtant

Code :
  1. <% Response.Write (CalcMoy (tth_2004,tt_2004)) %>


 
Mais il me repond  
 
TYpe incompatible à la ligne 13
Cette dite ligne est : CalcMoy = (nb / tt) * 100
 
Donc comment doit je faire pour appeler correctement la fonction?
 
Merci d'avance

n°1412079
hyptnos
GT : Gui iom
Posté le 24-07-2006 à 10:29:46  profilanswer
 

Up a ma derniere question please

mood
Publicité
Posté le 24-07-2006 à 10:29:46  profilanswer
 

n°1412356
hyptnos
GT : Gui iom
Posté le 24-07-2006 à 15:18:28  profilanswer
 

C'est bon j'ai trouver
 
c'est un problème de typage puisqu'il sort de la base de donné il est forcement en chaine de caractère alors il faut le convertir pour cela j'ai fait
 
lors de la creation de la variable

Code :
  1. tt_2005 = CInt(rs("nb" ))


donc Cint pour convertir en integer
 
et dans la fonction j'ai mis
 

Code :
  1. CalcMoy = Round((nb / tt) * 100, 2)


Round() pour avoir que 2 chiffre après la virgule
 
Et la niquel ca fonctionne :)

n°1412358
lapin21
Posté le 24-07-2006 à 15:19:03  profilanswer
 

A priori je dirais que les résultats de ta requête doivent être des chaînes de caractère, dans ce cas il faudrait les convertir (la fonction Cint peut-être).

n°1412474
hyptnos
GT : Gui iom
Posté le 24-07-2006 à 17:03:58  profilanswer
 

Je te grier :) a une minute pret
 
mais en effet ce que tu dis est juste puisque c'est ce que j'ai fait et que cela fonctionne
 
en tout cas merci :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  ASP

  Requete Count() et affichage ASP

 

Sujets relatifs
Réquete sql champ date recuperer le MOISaffichage video
Petit souci de requete et mysql_fetch_array[SQL] REQUETE sur laquelle je Seche, Please HELP
Pb requête sqlCopier le résultat d'une requête sql dans un tableau en C++
affichage de graph, de courbes, d'histogrammes en c++Help !!! Problème d'affichage de page
Probleme de création de requête SQL un peu compliqué !duplicate entry for key sur une requete UPDATE
Plus de sujets relatifs à : Requete Count() et affichage ASP


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR