Dan Shirah wrote:
Having some issues with outputting my table data as an array.

In the code below I am outputting the column titles of my table into an
excel spreadsheet. I get the column titles just fine in Excel.

if($numberFields) { // Check if we need to output anything
 $types = ifx_fieldtypes($query);
 if (isset($types)) {
  foreach($types as $field_name[] => $data_type) {
  }
 }
 $headers = join(',', $field_name)."\n"; // Make our first row in the CSV


After that I am pulling all of the column data to place under it's
respective title.

Uncommenting the print_r($info); below does display all of the data for each
column correctly. However, after I run my foreach loop and output the report
to Excel all I get is empty rows/columns where the data should be...on the
bright side I get the exact number of empty rows that my query should
return.

Any ideas why the data isn't populating? If I change $row[] =
parseCSVComments($info->$fieldName); to $row[] = parseCSVComments($info); I
get "Array" printed out in every cell.


 while($info = ifx_fetch_row($query)) {
 //print_r($info);
  foreach($field_name as $fieldName) { // Loop through the array of headers
as we fetch the data
   $row[] = parseCSVComments($info->$fieldName);
  } // End loop
  $data .= join(',', $row)."\n"; // Create a new row of data and append it
to the last row
  $row = ''; // Clear the contents of the $row variable to start a new row
 }
 // Start our output of the CSV
 header("Content-type: application/x-msdownload");
 header("Content-Disposition: attachment; filename=data.csv");
 header("Pragma: no-cache");
 header("Expires: 0");
 echo $headers.$data;
}

Thanks,
Dan


<?php

while($info = ifx_fetch_row($query)) {
        //print_r($info);

        // Initialize/clear the contents of the $row variable
        $row = array();

        // You probably need to reset the $field_name var with each
        // iteration over it.  from what I understand, foreach will move
        // the internal pointer of the array to the end.  Then the next
        // iteration over the array will start at the end.  BAD!!!
        reset($field_name);

        // Loop through the array of headers as we fetch the data
        foreach($field_name as $fieldName) {


                // From the manual: ifx_fetch_row returns an associative array
                $row[] = parseCSVComments($info[$fieldName]);

        } // End loop


        // Create a new row of data and append it to the last row
        $data .= join(',', $row)."\n";

} // End while

?>

BTW: what are you doing, if anything, if your data has a comma in it?

--
Jim Lucas

   "Some men are born to greatness, some achieve greatness,
       and some have greatness thrust upon them."

Twelfth Night, Act II, Scene V
    by William Shakespeare


--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to