J'essaie d'obtenir le nom de champ de ma table provenant de ma base de données en utilisant PHPExcel.Obtenir le nom de champ de MySQL vers Excel en utilisant PHPExcel
Cependant, je reçois une erreur disant
mysql_field_name() attend le paramètre 2 à être long, chaîne donnée dans C: \ xampp \ htdocs \ phpexcelsample \ download.php en ligne 42
Je pense qu'il me manque quelque chose ici ... pouvez-vous me donner des conseils sur la façon d'obtenir le nom de domaine?
Voici mon code:
<?php
$dbhost= "localhost"; //your MySQL Server
$dbuser = "root"; //your MySQL User Name
$dbpass = ""; //your MySQL Password
$dbname = "sales";
//your MySQL Database Name of which database to use this
$tablename = "deposit";
//your MySQL Table Name which one you have to create excel file
// your mysql query here , we can edit this for your requirement
$sql = "Select * from $tablename ";
//create code for connecting to mysql
$connect = @mysql_connect($dbhost, $dbuser, $dbpass)
or die("Couldn't connect to MySQL:<br>" . mysql_error() . "<br>" .
mysql_errno());
//select database
$Db = @mysql_select_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());
error_reporting(E_ALL);
require_once 'Classes/PHPExcel.php';
// Execute the database query
// Instantiate a new PHPExcel object
$objPHPExcel = new PHPExcel();
// Set the active Excel worksheet to sheet 0
$objPHPExcel->setActiveSheetIndex(0);
// Initialise the Excel row number
$rowCount = 1;
//start of printing column names as names of MySQL fields
$column = 'A';
for ($i = 1; $i < mysql_num_fields($result); $i++)
{
//$objPHPExcel->getActiveSheet()->setCellValue($column.$rowCount,
mysql_field_name($result,$i));
$objPHPExcel->getActiveSheet()->setCellValue($column.$rowCount,
mysql_field_name($result,'EMPLOYEE'));
$column++;
}
//end of adding column names
//start while loop to get data
$rowCount = 2;
while($row = mysql_fetch_row($result))
{
$column = 'A';
for($j=1; $j<mysql_num_fields($result);$j++)
{
if(!isset($row[$j]))
$value = NULL;
elseif ($row[$j] != "")
$value = strip_tags($row[$j]);
else
$value = "";
$objPHPExcel->getActiveSheet()->setCellValue($column.$rowCount, $value);
$column++;
}
$rowCount++;
}
// Redirect output to a client’s web browser (Excel5)
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="Result.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
?>
L'erreur vient de ce code 'mysql_field_name ($ result, 'EMPLOYEE')); Êtes-vous sûr de l'avoir besoin? –
@DollyAswin, Oui je suis sûr ... Je veux montrer des noms de champs spécifiques, comme EMPLOYEE, DATE, AMOUNT etc ... c'est pourquoi j'essaie de tester un seul champ si cela fonctionne .... cependant, J'ai des problèmes avec ça :( – Rukikun
Je pense que 'mysql_field_name ($ result, $ i));' est suffisant, donc vous n'en avez pas besoin. L'erreur vient de ce code, parce que vous mettez la chaîne sur second param ('EMPLOYEE') –