Problems with importing excel from php

0

Using this code, I download the file, you show me the data but some records do not appear in the corresponding cells, for example the name comes out in the surname cell

GREETINGS

 <?php
  /*******EDIT LINES 3-8*******/
  $DB_Server = "localhost"; //MySQL Server    
  $DB_Username = "pcomp"; //MySQL Username     
  $DB_Password = "KneTPuxJ77f4YLNX";             //MySQL Password     
  $DB_DBName = "base";         //MySQL Database Name  
  $DB_TBLName = "tabla"; //MySQL Table Name   
  $filename = "ad";         //File Name
  /*******YOU DO NOT NEED TO EDIT ANYTHING BELOW THIS LINE*******/    
  //create MySQL connection   

  $sql = "SELECT * FROM $DB_TBLName";

   $Connect = @mysql_connect($DB_Server, $DB_Username, $DB_Password) or 
   die("Couldn't connect to MySQL:<br>" . mysql_error() . "<br>" . 
   mysql_errno());
   //select database   
   $Db = @mysql_select_db($DB_DBName, $Connect) or die("Couldn't select 
   database:<br>" . mysql_error(). "<br>" . mysql_errno());
   //execute query 
   $result = @mysql_query($sql,$Connect) or die("Couldn't execute query: 
   <br>" . mysql_error(). "<br>" . mysql_errno());
   $file_ending = "xls";
   //header info for browser
   header("Content-Type: application/xls");
   header("Content-Disposition: attachment; filename=$filename.xls");
   header("Pragma: no-cache");
   header("Expires: 0");
   /*******Start of Formatting for Excel*******/   
   //define separator (defines columns in excel & tabs in word)
   $sep = "\t"; //tabbed character
   //start of printing column names as names of MySQL fields
   for ($i = 0; $i < mysql_num_fields($result); $i++) {
    echo mysql_field_name($result,$i) . "\t";
    }
    print("\n");
    //end of printing column names  
     //start while loop to get data
     while($row = mysql_fetch_row($result))
    {
    $schema_insert = "";
    for($j=0; $j<mysql_num_fields($result))
    {
        if(!isset($row[$j]))
            $schema_insert .= "NULL".$sep;
        elseif ($row[$j] != "")
            $schema_insert .= "$row[$j]".$sep;
        else
            $schema_insert .= "NULL".$sep;
    }
    $schema_insert = str_replace($sep."$", "", $schema_insert);
   // $schema_insert = preg_replace("/\r\n|\n\r|\n|\r/", " ", 
   $schema_insert);
    $schema_insert .= "\n";
    print(trim($schema_insert));
    print "\r";
   }
 ?>
    
asked by jeson 04.10.2018 в 21:08
source

1 answer

0

In this for you are not increasing the variable j that is used to go through the fields:

for($j=0; $j<mysql_num_fields($result))

It should look like this:

for ($j=0; $j<mysql_num_fields($result); $j++)
    
answered by 05.10.2018 в 09:57