Thursday, February 7, 2013

export data for CSV file using PHP


Exporting data to CSV file is handy work. Because most of the data users like to do their own filters and customisation activities. 
To export the data to CSV file we can use PHP header() function. It is totally the way you define header content type.
Here is sample
<?php
Header('content-type:text/csv’);
?>
Then required to define content disposition.  This is how do you going to present the data. I am try to export data as attachment file. And you have to provide file name too. My file name is example.csv.

header('Content-Disposition: attachment;filename=\example.csv');

Now you have to define CSV file rows, and columns. You can choose database data or other data. Here my sample.

$csvHeader = '"Col1","Col2"';
$csvData = '"Row1","Row1"';

Col1 and Col2 is top column of CSV file.

Now everything ready to present. This is  full sample code.
<?php

$csvHeader = '"Col1","Col2"';
$csvData = '"Row1","Row1"';

header('Content-type: text/csv');
header('Content-Disposition: attachment;filename=\example.csv');
echo $csvHeader . PHP_EOL;
echo $csvData;
?>

Here I used PHP_EOL to make end of line in CSV file first line.

Now lets see database data how to export. No magic there.

First connect to database. you can use separate file to put this code. 
<?php

// --------------------------------------------------------------
//fucntion for connecting mysql server
function conDb(){
$link = mysql_connect("localhost","root","password") or die("Can't Connect to the server");
mysql_select_db("mydb")or die("selecting database error");
}
// --------------------------------------------------------------
?>

This is sample code to export database data.
<?php
 header('Content-type:text/csv');//define content type
    header('Content-Disposition:attachment;filename=mysample.csv');//add file name
    $csvHeader = '"item1.","item2","item3"';//CSV file header coulum
    echo $csvHeader.PHP_EOL;
            $sql="SELECT item1,item2,item3 FROM mytable;//fetch data from database
$result = mysql_query($sql);
        while($row = mysql_fetch_array($result)){
            $csvData = $row['item1'].",".$row['item2'].",".$row['item3'];//table data
            echo $csvData.PHP_EOL;
        }
?>
Try this and enjoy. appreciated your comment.



Tuesday, April 17, 2012

What we take as server information as backup...

This is the very common question to Unix administrators. Sometimes servers will crash during the change or any implementation. sometime backup is not help to recover the server. System administrator needs to build the server from initial stage. So what information require to build server initial level. These are some basic.

  1. Kernel type and version
  2. patch level
  3. disk partition and mount point
  4. installed software
  5. IP address
  6. routing table
  7. running processors
I tried to developed small script to get these information to one file. before do any change to the server, system administrator can run the script and collect information. 
#!/bin/bash
###################################################
#                                                 #
#      BACKUP SERVER INFO BEFORE PATCHING         #
#                      Version 1.0                #
#              Created Date 14/03/2012            #
#     Last Modified Date 14/03/2012               #
# INSTRUCTIONS-                                   #
# Log file will save on /home/admin directory     #
# file name is server_backup_info.<date>.log      #
# example - server_backup_info.14Mar2012.log      #
###################################################
echo "             Server Information" >> /home/admin/server_backup_info.`date +%d%b%Y`.log
echo "             ++++++++++++++++++">> /home/admin/server_backup_info.`date +%d%b%Y`.log
echo "HOSTNAME: " $(hostname) >> /home/admin/server_backup_info.`date +%d%b%Y`.log
echo "DATE: " $(date) >> /home/admin/server_backup_info.`date +%d%b%Y`.log
echo "=======================================================" >> /home/admin/server_backup_info.`date +%d%b%Y`.log
echo " " >> /home/admin/server_backup_info.`date +%d%b%Y`.log
echo "IP Address information" >> /home/admin/server_backup_info.`date +%d%b%Y`.log
echo "-------------------------------------------------------" >> /home/admin/server_backup_info.`date +%d%b%Y`.log
ifconfig -a >> /home/admin/server_backup_info.`date +%d%b%Y`.log
echo "_______________________________________________________" >> /home/admin/server_backup_info.`date +%d%b%Y`.log
echo "ROUTING TABLE" >> /home/admin/server_backup_info.`date +%d%b%Y`.log
echo "-------------------------------------------------------" >> /home/admin/server_backup_info.`date +%d%b%Y`.log
netstat -rn >> /home/admin/server_backup_info.`date +%d%b%Y`.log
echo "_______________________________________________________" >> /home/admin/server_backup_info.`date +%d%b%Y`.log
echo "Kernel Information" >> /home/admin/server_backup_info.`date +%d%b%Y`.log
echo "-------------------------------------------------------" >> /home/admin/server_backup_info.`date +%d%b%Y`.log
uname -a >> /home/admin/server_backup_info.`date +%d%b%Y`.log
echo "_______________________________________________________" >> /home/admin/server_backup_info.`date +%d%b%Y`.log
echo "Disk information" >> /home/admin/server_backup_info.`date +%d%b%Y`.log
echo "-------------------------------------------------------" >> /home/admin/server_backup_info.`date +%d%b%Y`.log
cat /etc/fstab >> /home/admin/server_backup_info.`date +%d%b%Y`.log
echo "_______________________________________________________" >> /home/admin/server_backup_info.`date +%d%b%Y`.log
echo "Disk Usage" >> /home/admin/server_backup_info.`date +%d%b%Y`.log
echo "-------------------------------------------------------" >> /home/admin/server_backup_info.`date +%d%b%Y`.log
df -h >> /home/admin/server_backup_info.`date +%d%b%Y`.log
echo "_______________________________________________________" >> /home/admin/server_backup_info.`date +%d%b%Y`.log
echo "Boot Loader Information" >> /home/admin/server_backup_info.`date +%d%b%Y`.log
echo "-------------------------------------------------------" >> /home/admin/server_backup_info.`date +%d%b%Y`.log
cat /boot/grub/menu.lst >> /home/admin/server_backup_info.`date +%d%b%Y`.log
echo "_______________________________________________________" >> /home/admin/server_backup_info.`date +%d%b%Y`.log
echo "RPMs" >> /home/admin/server_backup_info.`date +%d%b%Y`.log
echo "-------------------------------------------------------" >> /home/admin/server_backup_info.`date +%d%b%Y`.log
rpm -qa >> /home/admin/server_backup_info.`date +%d%b%Y`.log
echo "_______________________________________________________" >> /home/admin/server_backup_info.`date +%d%b%Y`.log
echo "Running Processors" >> /home/admin/server_backup_info.`date +%d%b%Y`.log
echo "-------------------------------------------------------" >> /home/admin/server_backup_info.`date +%d%b%Y`.log
ps -eaf >> /home/admin/server_backup_info.`date +%d%b%Y`.log
echo "_______________________________________________________" >> /home/admin/server_backup_info.`date +%d%b%Y`.log
echo "How Long Server UP and Running" >> /home/admin/server_backup_info.`date +%d%b%Y`.log
echo "-------------------------------------------------------" >> /home/admin/server_backup_info.`date +%d%b%Y`.log
uptime >> /home/admin/server_backup_info.`date +%d%b%Y`.log
echo "_______________________________________________________" >> /home/admin/server_backup_info.`date +%d%b%Y`.log
echo "Patch Level" >> /home/admin/server_backup_info.`date +%d%b%Y`.log
echo "-------------------------------------------------------" >> /home/admin/server_backup_info.`date +%d%b%Y`.log
cat /etc/SuSE-release >> /home/admin/server_backup_info.`date +%d%b%Y`.log
echo "_______________________________________________________" >> /home/admin/server_backup_info.`date +%d%b%Y`.log
exit 0

This script for SuSE Linux. For other Linux version require to do small changes. And sometimes you need more information to collect.If anyone wants modified script please send comment.