**
**
<?php
mysql_connect("localhost","root","");
mysql_select_db("school");
?>
<html>
<head>
<script type="text/javascript" src="../js/exp_stdsub.js"></script>
</head>
<hr />
<u><h3>Export your Data here</h3></u>
<form action="" method="post">
<select name="expstd" id="expstd" onclick="return expsubjs(this.value);">
<option>Select Standared</option>
<?php
$exe_sel_std = mysql_query("SELECT * from s_standared");
while($r_sel_std = mysql_fetch_array($exe_sel_std)){
$sel_stdid = $r_sel_std['std_id'];
$sel_std = $r_sel_std['std']; ?>
<option value="<?php echo $sel_stdid; ?>"><?php echo $sel_std; ?></option>
<?php } ?>
</select></td>
<input type="submit" class="btn btn-green" name="exp_stdque" value="Export Standardwise Question">
</form>
</table>
<?php
//EDIT YOUR MySQL Connection Info:
$DB_Server = "localhost"; //your MySQL Server
$DB_Username = "root"; //your MySQL User Name
$DB_Password = ""; //your MySQL Password
$DB_DBName = "school"; //your MySQL Database Name
$DB_TBLName = "s_question"; //your MySQL Table Name
if(isset($_POST['exp_stdque'])) {
$exstdid = $_POST['expstd'];
//$DB_TBLName, $DB_DBName, may also be commented out & passed to the browser
//as parameters in a query string, so that this code may be easily reused for
//any MySQL table or any MySQL database on your server
//DEFINE SQL QUERY:
//edit this to suit your needs
$sql = "Select * from $DB_TBLName WHERE std_id = $exstdid";
//Optional: print out title to top of Excel or Word file with Timestamp
//for when file was generated:
//set $Use_Titel = 1 to generate title, 0 not to use title
$Use_Title = 1;
//define date for title: EDIT this to create the time-format you need
$now_date = DATE('m-d-Y H:i');
//define title for .doc or .xls file: EDIT this if you want
$title = "Dump For Table $DB_TBLName from Database $DB_DBName on $now_date";
/*
Leave the connection info below as it is:
just edit the above.
(Editing of code past this point recommended only for advanced users.)
*/
//create MySQL connection
$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());
//if this parameter is included ($w=1), file returned will be in word format ('.doc')
//if parameter is not included, file returned will be in excel format ('.xls')
IF (ISSET($w) && ($w==1))
{
$file_type = "msword";
$file_ending = "doc";
}ELSE {
$file_type = "vnd.ms-excel";
$file_ending = "xls";
}
//header info for browser: determines file type ('.doc' or '.xls')
HEADER("Content-Type: application/$file_type");
HEADER("Content-Disposition: attachment; filename=database_dump.$file_ending");
HEADER("Pragma: no-cache");
HEADER("Expires: 0");
/* Start of Formatting for Word or Excel */
IF (ISSET($w) && ($w==1)) //check for $w again
{
/* FORMATTING FOR WORD DOCUMENTS ('.doc') */
//create title with timestamp:
IF ($Use_Title == 1)
{
ECHO("$title\n\n");
}
//define separator (defines columns in excel & tabs in word)
$sep = "\n"; //new line character
WHILE($row = MYSQL_FETCH_ROW($result))
{
//set_time_limit(60); // HaRa
$schema_insert = "";
FOR($j=0; $j<mysql_num_fields($result);$j++)
{
//define field names
$field_name = MYSQL_FIELD_NAME($result,$j);
//will show name of fields
$schema_insert .= "$field_name:\t";
IF(!ISSET($row[$j])) {
$schema_insert .= "NULL".$sep;
}
ELSEIF ($row[$j] != "") {
$schema_insert .= "$row[$j]".$sep;
}
ELSE {
$schema_insert .= "".$sep;
}
}
$schema_insert = STR_REPLACE($sep."$", "", $schema_insert);
$schema_insert .= "\t";
PRINT(TRIM($schema_insert));
//end of each mysql row
//creates line to separate data from each MySQL table row
PRINT "\n----------------------------------------------------\n";
}
}ELSE{
/* FORMATTING FOR EXCEL DOCUMENTS ('.xls') */
//create title with timestamp:
IF ($Use_Title == 1)
{
ECHO("$title\n");
}
//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))
{
//set_time_limit(60); // HaRa
$schema_insert = "";
FOR($j=0; $j<mysql_num_fields($result);$j++)
{
IF(!ISSET($row[$j]))
$schema_insert .= "NULL".$sep;
ELSEIF ($row[$j] != "")
$schema_insert .= "$row[$j]".$sep;
ELSE
$schema_insert .= "".$sep;
}
$schema_insert = STR_REPLACE($sep."$", "", $schema_insert);
//following fix suggested by Josue (thanks, Josue!)
//this corrects output in excel when table fields contain \n or \r
//these two characters are now replaced with a space
$schema_insert = PREG_REPLACE("/\r\n|\n\r|\n|\r/", " ", $schema_insert);
$schema_insert .= "\t";
PRINT(TRIM($schema_insert));
PRINT "\n";
}
}
}
?>
IMPORTING FROM EXCEL INTO MySQL USING PHP
<table>
<form enctype="multipart/form-data" action="" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
<tr>
<td><h5><b>Select Standared</b></h5></td>
<td><select name="chap_sel_std" id="chap_sel_std">
<option>Select Standared</option>
<?php
$exe_sel_std = mysql_query("SELECT * from s_standared");
while($r_sel_std = mysql_fetch_array($exe_sel_std)){
$sel_stdid = $r_sel_std['std_id'];
$sel_std = $r_sel_std['std'];?>
<option value="<?php echo $sel_stdid; ?>"><?php echo $sel_std;?></option>
<?php } ?>
</select></td>
</tr>
<tr>
<td><h5><b>Select Font</b></h5></td>
<td><select name="sel_f_gn_que">
<option>Select Font</option>
<?php
$xf = mysql_query("SELECT * from s_font");
while($rquef = mysql_fetch_array($xf)){
$f_id = $rquef['f_id'];
$f_name = $rquef['f_name']; ?>
<option value="<?php echo $f_id; ?>"><?php echo $f_name; }?> </option>
</select></td>
</tr>
<tr>
<td><h5><b>Upload Question<h5><b></td>
<td>
<input type="file" name="file" id="file" class="btn">
</td>
</tr>
<tr>
<td></td>
<td colspan="2"><input type="submit" class="btn btn-green big" name="add_que" value="Add Questions"></td>
<td><input type="submit" name="saveandexit" class="" value="Finish" onclick="close();"></td>
</tr>
</form>
</table>
</div>
<?php
$data = array();
//$db =& DB::connect("mysql://[email protected]/names", array());
//if (PEAR::isError($db)) { die($db->getMessage()); }
//quetype difficulty standard subject chap que marks
function add_person($quetype,$dif, $subject,$chap_name,$que,$marks)
{
global $data, $db;
//$sth = $db->prepare("INSERT INTO names VALUES(0, ?, ?, ?, ?)");
// $db->execute($sth, array($first, $middle, $last, $email));
$data []= array(
'quetype' => $quetype,
'difficulty' => $dif,
'subject' => $subject,
'chap' => $chap_name,
'que' => $que,
//'ans' => $ans,
'marks' => $marks
);
}
if(!isset($_FILES['file']['tmp_name'])){
echo "";
}elseif($_FILES['file']['tmp_name'])
{
$dom = DOMDocument::load($_FILES['file']['tmp_name']);
$rows = $dom->getElementsByTagName('Row');
$first_row = true;
foreach ($rows as $row)
{
if (!$first_row)
{
$quetype = "";
$dif = "";
$subject = "";
$chap_name = "";
$que = "";
//$ans = "";
$marks = "";
$index = 1;
$cells = $row->getElementsByTagName('Cell');
foreach($cells as $cell)
{
$ind = $cell->getAttribute('Index');
if ($ind != null) $index = $ind;
if ($index == 1) $quetype = $cell->nodeValue;
if ($index == 2) $dif = $cell->nodeValue;
if ($index == 4) $subject = $cell->nodeValue;
if ($index == 6) $chap_name = $cell->nodeValue;
if ($index == 8) $que = $cell->nodeValue;
//if ($index == 9) $ans = $cell->nodeValue;
if ($index == 9) $marks = $cell->nodeValue;
$index += 1;
}
add_person($quetype,$dif, $subject,$chap_name,$que,$marks);
if(isset($_POST['add_que'])){
$chap_sel_std = $_POST['chap_sel_std'];
echo $simquefnt = $_POST['sel_f_gn_que'];
//que_id quetype_id chap_id sub_id std_id que dif_id marks que_cdate
//$chap_sel_std = $_POST['chap_sel_std']; //que_id quetype_id chap_id sub_id std_id que dif_id marks que_cdate
mysql_query("INSERT INTO
s_question
VALUES (null,'$quetype','$chap_name','$subject','$chap_sel_std','$que','NO IMAGE','$dif','$marks','$simquefnt','$current')");
// header("location:../admin/quetionaris.php#tabs-que");
echo "Successfully Added";
}
}
$first_row = false;
}
}
?>
最大的好處......它是一個用於編寫和讀取xls文件的單一庫,並且由於OP需要同時執行這兩個操作,因此這比單獨的不兼容庫用於讀取和寫入 – 2012-02-04 11:06:14