Last active
October 8, 2019 02:18
-
-
Save amin007/22ac9d3441588d833af0670ef5261f87 to your computer and use it in GitHub Desktop.
papar csv untuk buat table dan insert semua data
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
#--------------------------------------------------------------------------------------------------- | |
function bersih($papar) | |
{ | |
# lepas lari aksara khas dalam SQL | |
//$papar = mysql_real_escape_string($papar); | |
# buang ruang kosong (atau aksara lain) dari mula & akhir | |
$papar = trim($papar); | |
return $papar; | |
} | |
#--------------------------------------------------------------------------------------------------- | |
function bersih2X($papar) | |
{ | |
# buang ruang kosong (atau aksara lain) dari mula & akhir | |
$papar = trim($papar); | |
# https://stackoverflow.com/questions/1176904/php-how-to-remove-all-non-printable-characters-in-a-string | |
$papar = preg_replace('/[\x00-\x1F\x7F-\xFF]/', '', $papar); | |
$papar = preg_replace('/[\x00-\x1F\x7F-\xFF]/', '', $papar); | |
$papar = preg_replace('/[\x00-\x1F\x7F]/', '', $papar); | |
$papar = preg_replace('/[\x00-\x1F\x7F]/u', '', $papar); | |
$papar = preg_replace('/[\x00-\x1F\x7F\xA0]/u', '', $papar); | |
return $papar; | |
} | |
#--------------------------------------------------------------------------------------------------- | |
function bersihGET($papar) | |
{ | |
# bersih untuk $_GET sahaja | |
$paparHTML = filter_input(INPUT_GET, $papar, FILTER_SANITIZE_SPECIAL_CHARS); | |
$paparURL = filter_input(INPUT_GET, $papar, FILTER_SANITIZE_ENCODED); | |
//$papar = filter_var($_GET[$papar], FILTER_SANITIZE_URL); | |
//echo "You have searched for $paparHTML.\n"; | |
//echo "<a href='?search=$paparURL'>Search again.</a>"; | |
//return $papar; | |
return $paparHTML; | |
} | |
#--------------------------------------------------------------------------------------------------- | |
function bukafail($path = 'test.csv', $field = ';', $row = 0) | |
{ | |
$myTable = basename($path, '.csv'); | |
if (($handle = fopen($path, 'r')) !== FALSE) | |
{ | |
while (($data = fgetcsv($handle, 12000, $field)) !== FALSE) | |
{ | |
$num = count($data); //echo "<p> $num fields in line $row: \n"; | |
$dataFields = ''; | |
for ($c=0; $c < $num; $c++) | |
{ | |
//echo "<hr>/*$c*/" . $data[$c] . "| $row"; | |
if($row == 0): | |
$medan[] = bersih2X($data[$c]); | |
else: | |
$dataFields .= ($data[$c] == null) ? | |
"null," : "'" . $data[$c] . "',"; | |
endif; | |
} | |
if($row != 0) | |
$datas[$row] = bersih2X(substr($dataFields,0,-1)); | |
$row++; | |
//echo '</p>'; | |
} | |
fclose($handle); | |
} | |
return array($myTable, $medan, $datas); | |
} | |
#--------------------------------------------------------------------------------------------------- | |
/*CREATE TABLE Persons ( | |
PersonID int, | |
LastName varchar(255), | |
FirstName varchar(255), | |
Address varchar(255), | |
City varchar(255), | |
poskod int(20) NULL DEFAULT 0 | |
ALTER TABLE `mk_kp334_be2016_analisia_v2` CHANGE NoBatch NoBatch varchar(12); | |
); | |
ALTER TABLE `mk_kp334_be2016_analisia_v2` CHANGE newss newss varchar(12); | |
ALTER TABLE `mk_kp334_be2016_analisia_v2` CHANGE `F000` `F000` varchar(10); | |
ALTER TABLE `mk_kp334_be2016_analisia_v1` CHANGE F0002 F0002 varchar(20); | |
ALTER TABLE `mk_kp334_be2016_analisia_v1` CHANGE F0021 F0021 varchar(12); | |
ALTER TABLE `mk_kp334_be2016_analisia_v1` CHANGE F0026 F0026 varchar(12); | |
*/ | |
#--------------------------------------------------------------------------------------------------- | |
function buatSql($jadual, $medan, $datas) | |
{ | |
# jika $jadual ada simbol titik | |
list($myTable, $type) = array_pad(explode('.',$jadual), 2, ''); | |
# debug error | |
//echo '<pre>$jadual:'; print_r($jadual); echo '</pre>'; | |
//echo '<pre>$myTable:'; print_r($myTable); echo '</pre>'; | |
//echo '<pre>$type:'; print_r($type); echo '</pre>'; | |
//echo '<pre>$medan:'; print_r($medan); echo '</pre>'; | |
//echo '<pre>$datas:'; print_r($datas); echo '</pre>'; | |
# create sql | |
$sql_query = ''; | |
$sql_query .= " CREATE TABLE `$myTable`\r("; | |
$sql_query .= "\r `" . implode("` int(20) NULL DEFAULT 0,\r `", $medan); | |
$sql_query .= "` int(20) NULL DEFAULT 0\r"; | |
$sql_query .= "); \r\r";//*/ | |
# insert sql | |
$sql_query .= " INSERT INTO `$myTable`("; | |
$sql_query .= "`" . implode("`,`", $medan) . "`"; | |
$sql_query .= ") VALUES"; | |
$sql_query .= "\r (" . implode("),\r (", $datas) . ")";//*/ | |
echo '<pre>'; print_r($sql_query); echo '</pre>';//*/ | |
} | |
#--------------------------------------------------------------------------------------------------- | |
$path = ''; # lokasi fail csv | |
$field = "\t"; # aksara antara data2 dalam fail csv | |
list($myTable, $medan, $datas) = bukafail($path, $field, $row = 0); | |
buatSql($myTable, $medan, $datas);//*/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment