Hello, with the simple function below, I am able to import data into a mysql
table.
The issue is that the telefone
column will be in another tabela
and the way it is today, I can only import to the same tabela
.
How can I do to import colunas
from a arquivo csv
to a tabela
and coluna telefone
import to another tabela
?
public function upload_file(){
$tipo = array('application/vnd.ms-excel','text/plain','text/csv','text/tsv');
if(!empty($_FILES['file']['name']) && in_array($_FILES['file']['type'],$tipo)){
if(is_uploaded_file($_FILES['file']['tmp_name'])){
// abre o arquivo csv carregado com o modo somente leitura
$arquivo = fopen($_FILES['file']['tmp_name'], 'r');
// pula a primeira linha
// se o arquivo csv não tiver cabeçalho, apenas comente a próxima linha
fgetcsv($arquivo);
// analisar dados do arquivo csv linha por linha
while(($coluna = fgetcsv($arquivo)) !== FALSE){
// verifica se o membro já existe no banco de dados com o mesmo email
$result = $this->db->get_where("tb_pessoa", array("email"=>$coluna[1]))->result();
if(count($result) > 0){
// atualiza os dados da pessoa
$this->db->update("tb_pessoa", array("nome"=>$coluna[0], "telefone"=>$coluna[2], "dt_inclusao"=>$coluna[3], "status"=>$coluna[4]), array("email"=>$coluna[1]));
}else{
// inserir dados da pessoa no banco de dados
$this->db->insert("tb_pessoa", array("nome"=>$coluna[0], "email"=>$coluna[1], "telefone"=>$coluna[2], "dt_inclusao"=>$coluna[3], "status"=>$coluna[4]));
}
}
//close opened csv file
fclose($arquivo);
$qstring["status"] = 'Success';
}else{
$qstring["status"] = 'Error';
}
}else{
$qstring["status"] = 'Invalid file';
}
$this->load->view('csvToMySQL',$qstring);
}
tables
tb_pessoa
nome varchar(100) NOT NULL
email varchar(100) NOT NULL
telefone varchar(100) NOT NULL
dt_inclusao timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
status varchar(100) NOT NULL
tb_telefone
telefone varchar(100) NOT NULL
pessoa_id int(11) NOT NULL