Exporting to Excel

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello all,

I am trying to query an INFORMIX database, and then take the results and
export them into a CSV or Excel file. I saw TONS of examples on how to do
this using MySQL and tried to adpt them for ifx, but I can't get the darn
thing working.  My code below sets variables for values passed from my form.
I then connect to my database and run a query that gets results based on the
variable values. After that I want to count the number of fields(columns)
and begin to build the export file.

Well, when I execute the page I get the popup to save/open the output as an
Excel file.  When I open it, instead of getting data, it returns an error
message of: PHP Warning: Wrong parameter count for ifx_fieldtypes()

I am trying to use ifx_fieldtypes() to replace the mysql function of
mysql_field_name()

Any ideas?

<?php
$name_code = $_POST['name'];
// echo $name_code;
$case_age = $_POST['case_age'];
// echo $case_age;
$case_cat = $_POST['case_cat'];
// echo $case_cat;
$case_status = $_POST['case_status'];
// echo $case_status;
include 'Conn/prpr_ifx.php';
 if (!$connect_id = ifx_connect("$database@$host", $user, $pass)) { // THE
ACTUAL CONNECTION
     echo "Unable to connect to Informix Database\n"; // DISPLAY IF
CONNECTION FAILS
    exit();
 }

function parseCSVComments($comments) {
  $comments = str_replace('"', '""', $comments); // First off escape all "
and make them ""
  if(eregi(",", $comments) or eregi("\n", $comments)) { // Check if I have
any commas or new lines
    return '"'.$comments.'"'; // If I have new lines or commas escape them
  } else {
    return $comments; // If no new lines or commas just return the value
  }
}
$sql = "SELECT * FROM pending_summary_detail WHERE name = '$name_code'";
 if (!empty($case_age)) {
  $sql.=" AND case_age_group = '$case_age'";
 }
 if (!empty($case_cat)) {
  $sql.=" AND case_category = '$case_cat'";
 }
 if (!empty($case_status)) {
  $sql.=" AND case_status = '$case_status'";
 } // Start our query of the database

$query = ifx_query ($sql, $connect_id);
$numberFields = ifx_num_fields($query); // Find out how many fields we are
fetching

if($numberFields) { // Check if we need to output anything
 for($i=0; $i<$numberFields; $i++) {
  $head[] = ifx_fieldtypes($query, $i); // Create the headers for each
column, this is the field name in the database
 }
 $headers = join(',', $head)."\n"; // Make our first row in the CSV

 while($info = ifx_fetch_row($query)) {
  foreach($head 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;
} else {
 // Nothing needed to be output. Put an error message here or something.
 echo 'No data available for this CSV.';
}
?>

[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux