export csv qui ne fonctionne pas

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : export csv qui ne fonctionne pas

par Ryle » 02 sept. 2007, 19:59

Ajoute un or die(mysql_error()) après le mysql_query() pour vérifier qu'il n'y a pas eu d'erreur MySql. Tu peux également afficher la requête générer pour vérifier qu'elle est correcte et la jouer dans phpMyAdmin ou MySql pour vérifier qu'elle retourne bien des résultats.

par Invité » 02 sept. 2007, 13:20

Bonjour,

Alors j'ai modifier le script comme suit:

Code : Tout sélectionner

<?php header("Content-type: text/x-csv"); header("Content-disposition: attachment; filename=Historique_SNR_" . date("Ymd").".csv"); include("../include/connection.php"); //Lecture de la data base $sql = (" select YEAR(FROM_UNIXTIME(History.eventdate)) as Year, MONTH(FROM_UNIXTIME(History.eventdate)) as Month, Devices.name as DeviceName, Interfaces.name as InterfaceName, Devices.name2 as devicesName2, Interfaces.description as InterfaceDesc, SUM(case StatusTypes.name when 'Normal' then 1 else 0 end) as Normal, SUM(case StatusTypes.name when 'Minor' then 1 else 0 end) as Minor, SUM(case StatusTypes.name when 'Major' then 1 else 0 end) as Major, SUM(case StatusTypes.name when 'Critical' then 1 else 0 end) as Critical from History inner join StatusTypes on History.statusid = StatusTypes.id inner join Cells on History.cellid = Cells.id inner join Interfaces on Cells.interfaceid = Interfaces.id inner join ServiceTypes on Cells.serviceid = ServiceTypes.id inner join Devices on Interfaces.deviceid = Devices.id where ServiceTypes.name = 'SNR' group by YEAR(F0ROM_UNIXTIME(History.eventdate)), MONTH(FROM_UNIXTIME(History.eventdate)), Devices.name, Interfaces.name, Interfaces.description ;"); $resultat = mysql_query ($sql); $list = ""; while ($snr = mysql_fetch_array ($resultat)) { $month = $snr ['Month']; $device = $snr ['DeviceName']; $interface = $snr ['InterfaceName']; $device2 = $snr ['InterfaceDesc']; $minor = $snr ['Minor']; $major = $snr ['Major']; $critical = $snr ['Critical']; $list .= "\"$month\",\"$device\",\"$interface\",\"$device2\",\"$minor\",\"$major\",\"$critical\"\r\n"; } echo $list; ?>
Mais j'ai une erreur sur le while
mysql_fetch_array(): supplied argument is not a valid MySQL result resource

vous auriez une idée ? parce que je sèche la

par Invité » 01 sept. 2007, 17:08

alors j'a modifier le fichier en ajoutant ceci

Code : Tout sélectionner

$host=""; $user="toto"; $password="litoto"; $db="monitoring"; mysql_connect($host,$user,$password) or die ("Erreur lors de la connection à la BDD"); mysql_select_db($db) or die ("Erreur lors de la selection d'une table de la BDD");
plus aucune erreur mais toujours le fichier vide

par Invité » 01 sept. 2007, 16:45

alors maintenant j'ai cette erreur

Code : Tout sélectionner

<b>Warning</b>: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in <b>/var/www/monitoring/historique/csv.php</b> on line <b>42</b><br />
en ajoutant " or die(mysql_error())"[/code]

par Ryle » 01 sept. 2007, 16:31

Si tu n'as que cette ligne, c'est que le fichier a bien été généré, mais qu'il ne contient pas de données. Donc que tu n'es pas rentré dans la boucle while(), donc probablement que ta requête n'a pas retourné d'enregistements.

Ajoute un or die(mysql_error()) après le mysql_query() pour vérifier qu'il n'y a pas eu d'erreyr MySql. Tu peux également afficher la requête générer pour vérifier qu'elle est correcte et la jouer dans phpMyAdmin ou MySql pour vérifier qu'elle retourne bien des résultats.

Par ailleurs, dans ton while, à chaque itération tu vas écraser (=) la valeur de la variable $csv_output au lieu de concaténer (.=) à la suite les nouvelles données.

par Djo » 01 sept. 2007, 16:05

Alors le fichier CSV arrive en téléchargement mais il est vide aucun info n'est inscrite dedant a part ce qui correspond a ceci

Code : Tout sélectionner

$csv_output = 'Month;DeviceName;InterfaceName;InterfaceDesc;Minor;Major;Critical';
sinon aucun msg d'erreur juste un document vide

par mere-teresa » 01 sept. 2007, 15:58

Nous avons besoin de plus précisions pour te répondre :
- As-tu un message d'erreur ? Si oui lequel ?
- Quels tests as-tu effectués pour pouvoir savoir jusqu'où ton script se déroule ?

export csv qui ne fonctionne pas

par Djo » 01 sept. 2007, 15:01

bonjour,

Voila je travail sur un petit script qui doit sortir un fichier csv tout fonctionne ou presque les données ne sont pas incluse dans le fichier csv je pense qu'il doit y avoir une erreur mais je n'arrive pas a trouver laquel.

Voici mon Code:

Code : Tout sélectionner

<?php header("Content-type: application/vnd.ms-excel"); header("Content-disposition: attachment; filename=Historique_SNR_" . date("Ymd").".csv"); $csv_output = 'Month;DeviceName;InterfaceName;InterfaceDesc;Minor;Major;Critical'; //$csv_output .= "\n"; include("../include/connection.php"); //Lecture de la data base $query = (" select YEAR(FROM_UNIXTIME(History.eventdate)) as Year, MONTH(FROM_UNIXTIME(History.eventdate)) as Month, Devices.name as DeviceName, Interfaces.name as InterfaceName, Devices.name2 as devicesName2, Interfaces.description as InterfaceDesc, SUM(case StatusTypes.name when 'Normal' then 1 else 0 end) as Normal, SUM(case StatusTypes.name when 'Minor' then 1 else 0 end) as Minor, SUM(case StatusTypes.name when 'Major' then 1 else 0 end) as Major, SUM(case StatusTypes.name when 'Critical' then 1 else 0 end) as Critical from History inner join StatusTypes on History.statusid = StatusTypes.id inner join Cells on History.cellid = Cells.id inner join Interfaces on Cells.interfaceid = Interfaces.id inner join ServiceTypes on Cells.serviceid = ServiceTypes.id inner join Devices on Interfaces.deviceid = Devices.id where ServiceTypes.name = 'SNR' group by YEAR(FROM_UNIXTIME(History.eventdate)), MONTH(FROM_UNIXTIME(History.eventdate)), Devices.name, Interfaces.name, Interfaces.description ;"); $result = mysql_query($query); while($row = mysql_fetch_array($result)) { $cvs_output = "$result[Month],$result[DeviceName],$result[InterfaceName],$result[devicesName2],$result[InterfaceDesc],$result[Ninor],$result[Major],$result[Critical]\n"; } print $csv_output; exit; ?>
Merci de votre aide