Mot :    Pseudo :           
 

Encore moi :kaola:
voilà j'ai besoin d'exploiter les données d'une bases de données Mysql et de les afficher dans un ficheir excel qui va s'ouvrir ds ma page web.
je suis en local sous esayphp avec une base mysql 4.0.15
ma page ne m'affiche pas d'erreur mais le fichier ne se crée pas, j'ai une page blanche à la place avec ma phrase :

"création du fichier en cours ..."

QQn peut m'aider SVP.

voici le code (c un peu long ;) )


Code :
  1. <html>
  2. <head>
  3. <title>Entrenoo/Creation fichier Liste des fichiers reçus des URR</title>
  4. </head>
  5. <body>
  6. Création du fichier en cours...
  7. <script type="text/vbscript">
  8. <!--
  9. Set monexcel = CreateObject("Excel.Application" )
  10. monexcel.visible=true
  11. Set newBook = monexcel.Workbooks.Add
  12. newBook.Worksheets(1).Name="Liste des Fichiers reçus"
  13. monexcel.Selection.cells(1,1).value="Code Nidt"
  14. monexcel.Selection.cells(1,2).value="Nom du Site"
  15. monexcel.Selection.cells(1,3).value="Fichiers"
  16. monexcel.Selection.cells(1,4).value="Date Exportation"
  17. monexcel.Selection.cells(1,5).value="URR"
  18. monexcel.Selection.cells(1,6).value="Code DR"
  19. monexcel.Selection.cells(1,7).value="Maintenance"
  20. monexcel.Selection.cells(1,8).value="Prestataire"
  21. monexcel.Selection.cells(1,9).value="Mois"
  22. Set objselect = monexcel.Range("A1","I1" ) 
  23. objselect.Select
  24. monexcel.Selection.Font.Bold=true
  25. <?php
  26. $annee=2007;
  27. $SQL="SELECT f.code_nidt, f.Fichiers, u.dr, s. code_dr, s.nom_site, f.DateEntree, f.prestataire, f.mois, s.maintenance FROM MPM_Liste_Fichiers f, site s, MPM_URR u WHERE f.annee=2007 AND f.Fichiers=Site  AND  f.codePRE=4 AND f.code_nidt=s.code_nidt AND  (u.code1=s.code_dr  or u.code2=s.code_dr) order by u.dr, f.code_nidt ";
  28. $rs=mysql_query($SQL) or die (mysql_error());
  29. $nbligne=mysql_numrows($rs);
  30. $i=0;
  31. while($i<$nbligne)
  32. {
  33. $dtentree=mysql_result($rs,$i,"DateEntree" );
  34. $code_nidt=mysql_result($rs,$i,"code_nidt" );
  35. $nom_site=mysql_result($rs,$i,"nom_site" );
  36. $dr=mysql_result($rs,$i,"dr" );
  37. $code_dr=mysql_result($rs,$i,"code_dr" );
  38. $maintenance=mysql_result($rs,$i,"maintenance" );
  39. $prestataire=mysql_result($rs,$i,"prestataire" );
  40. $mois=mysql_result($rs,$i,"mois" );
  41. $Libfic="Contrôle état général";
  42. }
  43. $i++;
  44. ?>
  45. monexcel.Selection.cells(<? $i ?>+1,1).NumberFormat="@"
  46. monexcel.Selection.cells(<? $i ?>+1,1).value="<? echo $code_nidt; ?>"
  47. monexcel.Selection.cells(<? $i ?>+1,4).NumberFormat="@"
  48. monexcel.Selection.cells(<? $i ?>+1,4).value="<? echo $dtentree; ?>"
  49. monexcel.Selection.cells(<? $i ?>+1,2).value="<? echo $nom_site; ?>"
  50. monexcel.Selection.cells(<? $i ?>+1,3).value="<? echo $Libfic; ?>"
  51. monexcel.Selection.cells(<? $i ?>+1,5).value="<? echo $dr; ?>"
  52. monexcel.Selection.cells(<? $i ?>+1,6).value="<? echo $code_dr; ?>"
  53. monexcel.Selection.cells(<? $i ?>+1,7).value="<? echo $maintenance; ?>"
  54. monexcel.Selection.cells(<? $i ?>+1,8).value="<? echo $prestataire; ?>"
  55. monexcel.Selection.cells(<? $i ?>+1,9).value="<? echo $mois; ?>"
  56. Set objselect = monexcel.Range("A2","I"&"<? $nbligne+1 ?>" ) 
  57. objselect.Select
  58. monexcel.Selection.Name="listeimport"
  59. Set objselect = monexcel.Range("A1","I"&"<? $nbligne+1 ?>" ) 
  60. objselect.Select
  61. monexcel.Selection.Borders(3).LineStyle=1 'bordures interieures
  62. monexcel.Selection.Borders(2).LineStyle=1 'bordures exterieures
  63. window.location="../accueil/accueil_MPM.php"
  64. //-->
  65. </script>
  66. </body>
  67. </html>

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

salut,
tu l'ouvres avec quel navigateur?

 

la syntaxe en php:

Code :
  1. <? $nbligne+1 ?>


n'est pas bonne!
tu peux utiliser la syntaxe courte

Code :
  1. <?= $nbligne+1 ?>

mais il faut qu'elle soit activée.


Message édité par coca25 le 28-08-2007 à 11:40:43
------------------------------ Ne pas oublier le [resolu] pour finir le sujet.
Penser à voir les tutos, ca peut aider!
Répondre à coca25

j'utilise IE .
si je veux utiliser la syntaxe que tu me prooses, qu'est ce qu'il faut activer?


Message édité par salistase le 28-08-2007 à 11:40:03
Répondre à salistase

il faut activer la balise short_open_tag dans php.ini mais dans le doute utilise

Code :
  1. <?php echo $nbligne+1; ?>



pour ton script, remplace le die (mysql_error ()) par:

Code :
  1. die ('msgbox "' . mysql_error () . "\"\n" );


------------------------------ Ne pas oublier le [resolu] pour finir le sujet.
Penser à voir les tutos, ca peut aider!
Répondre à coca25

Aucun changement, pas de message d'erreur.
tjrs une page blanche avec la phrase " Création du fichier en cours..."

Répondre à salistase

tu peux poster le code source de la page?
celui que tu obtiens en cliquant droit sur la page puis code source.

------------------------------ Ne pas oublier le [resolu] pour finir le sujet.
Penser à voir les tutos, ca peut aider!
Répondre à coca25

j'obtients des erreurs(j'ai oublié de mettre ma fonction Connection pour se connecter à ma BDD) qd j'affiche le code source .
je continue à les corriger et je te tiens au courant.

Répondre à salistase

voilà, Mis à part l'erreur de la fonction Connection(), ma requête ne fonctionnait pas car il y avait une erreur de syntaxe.

AND f.Fichiers="Site"

maintenant j'ai un autre pb :

Fatal error</b>: Maximum execution time of 180 seconds exceeded

le temps était fixé à 60 et j'ai testé avec 180 mais je n'ai tjrs rien, si j'augmente encore est ce que ça causer des pbs?
merci

Répondre à salistase

faut etre un peu logique :p, si le script prend du temps, c'est qu'il y a un probleme, rallonger le temps maximum ne sert à rien!

Code :
  1. $i=0;
  2. while($i<$nbligne)
  3. {
  4. //...
  5. }
  6. $i++;


le $i++ est en dehors de la boucle, ce qui donne une boucle infinie

------------------------------ Ne pas oublier le [resolu] pour finir le sujet.
Penser à voir les tutos, ca peut aider!
Répondre à coca25

lol c vrai.
j'ai corrigé l'erreur, je n'ai plus de message d'erreur mais j'ai tjrs la page blanche sans rien.

voici le code source:

Code :
  1. <html>
  2. <head>
  3. <title>Entrenoo/Creation fichier Liste des fichiers reçus des URR</title>
  4. </head>
  5. <body>
  6. Création du fichier en cours...
  7. <script type="text/vbscript">
  8. <!--
  9. Set monexcel = CreateObject("Excel.Application" )
  10. monexcel.visible=true
  11. Set newBook = monexcel.Workbooks.Add
  12. newBook.Worksheets(1).Name="Liste des Fichiers reçus"
  13. monexcel.Selection.cells(1,1).value="Code Nidt"
  14. monexcel.Selection.cells(1,2).value="Nom du Site"
  15. monexcel.Selection.cells(1,3).value="Fichiers"
  16. monexcel.Selection.cells(1,4).value="Date Exportation"
  17. monexcel.Selection.cells(1,5).value="URR"
  18. monexcel.Selection.cells(1,6).value="Code DR"
  19. monexcel.Selection.cells(1,7).value="Maintenance"
  20. monexcel.Selection.cells(1,8).value="Prestataire"
  21. monexcel.Selection.cells(1,9).value="Mois"
  22. Set objselect = monexcel.Range("A1","I1" ) 
  23. objselect.Select
  24. monexcel.Selection.Font.Bold=true
  25. monexcel.Selection.cells(408+1,1).NumberFormat="@"
  26. monexcel.Selection.cells(408+1,1).value="00011068H7"
  27. monexcel.Selection.cells(408+1,4).NumberFormat="@"
  28. monexcel.Selection.cells(408+1,4).value="09/02/2007"
  29. monexcel.Selection.cells(408+1,2).value="VILLEVOCANCE"
  30. monexcel.Selection.cells(408+1,3).value="Contrôle état général"
  31. monexcel.Selection.cells(408+1,5).value="Rhône Durance"
  32. monexcel.Selection.cells(408+1,6).value="H7"
  33. monexcel.Selection.cells(408+1,7).value="GIL Aubenas
  34. "
  35. monexcel.Selection.cells(408+1,8).value="GILM Tournon"
  36. monexcel.Selection.cells(408+1,9).value="2"
  37. Set objselect = monexcel.Range("A2","I"&"409" ) 
  38. objselect.Select
  39. monexcel.Selection.Name="listeimport"
  40. Set objselect = monexcel.Range("A1","I"&"409" ) 
  41. objselect.Select
  42. monexcel.Selection.Borders(3).LineStyle=1 'bordures interieures
  43. monexcel.Selection.Borders(2).LineStyle=1 'bordures exterieures
  44. window.location="../accueil/accueil_MPM.php"
  45. //-->
  46. </script>
  47. </body>
  48. </html>

Répondre à salistase

si tu as une seule erreur dans ton vbscript, l'excel n'est pas généré.
dans le source que tu m'as donné:

Code :
  1. monexcel.Selection.cells(408+1,7).value="GIL Aubenas
  2. "


il y a un saut de ligne en trop!

 

de plus ta boucle ne sert à rien, tu affectes aux memes variables, à la fin, tu n'as que le dernier enregistrement.

Message cité 1 fois
Message édité par coca25 le 28-08-2007 à 14:29:23
------------------------------ Ne pas oublier le [resolu] pour finir le sujet.
Penser à voir les tutos, ca peut aider!
Répondre à coca25

je vois pas où est le saut de ligne en trop
en fait c pas ma boucle qui ne sert à rien mais j'ai plutôt refermé les "}" au mauvais endroit.
il a fallu refermer le "}" du while après cette ligne

monexcel.Selection.cells(<? echo $i+1; ?>,9).value="<? echo $mois; ?>"

maintenant qd je regarde le code source, elle m'affiche tous les enregistrements et pas seulement le dernier.

mais sur ma page php je n'ai tjrs rien

Répondre à salistase

salistase a écrit :

je vois pas où est le saut de ligne en trop



coca25 a écrit :


Code :
  1. monexcel.Selection.cells(408+1,7).value="GIL Aubenas
  2. "




le " est bien sur une nouvelle ligne non?

------------------------------ Ne pas oublier le [resolu] pour finir le sujet.
Penser à voir les tutos, ca peut aider!
Répondre à coca25

oui et d'ailleurs je sais pas pourquoi il ya une nouvelle ligne.
je vais enlever les " " complètement pour cette ligne et voir si ça marche

Répondre à salistase

Tjrs rien malheureusement...

Répondre à salistase

salistase a écrit :

oui et d'ailleurs je sais pas pourquoi il ya une nouvelle ligne.
je vais enlever les " " complètement pour cette ligne et voir si ça marche


t'y vas au pif, c'est ca :D
c'est du vbscript, un langage! et les ", c'est pour délimiter une chaine!

------------------------------ Ne pas oublier le [resolu] pour finir le sujet.
Penser à voir les tutos, ca peut aider!
Répondre à coca25

et voilà que tu te moque de moi encore une fois
ça marche bien qd je les enlève, pas de saut de ligne mais j'ai tjrs rien

Répondre à salistase

salistase a écrit :

et voilà que tu te moque de moi encore une fois


non, mais toi si

salistase a écrit :


ça marche bien qd je les enlève, pas de saut de ligne mais j'ai tjrs rien


qu'est ce qui te permet de dire que ca marche bien?
pas de message d'erreur ne veut pas dire pas d'erreur.

Code :
  1. monexcel.Selection.cells(408+1,7).value=GIL Aubenas


ne veut strictement rien dire!

pour t'en assurer, prend le code source (la sortie sans le php) que tu as posté, sauvegarde dans un .html, enleve le retour à la ligne avant le " puis ouvres le avec explorer!

------------------------------ Ne pas oublier le [resolu] pour finir le sujet.
Penser à voir les tutos, ca peut aider!
Répondre à coca25

t'as sûrement raison
mais est ce que dois enlever tous les sauts de lignes de trop ds mon code source??

Répondre à salistase
Tom's Guide > Forum > Programmation > Pb excel
Aller à :

Il y a 2626 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens