Det er jo ikke meget, du giver os at arbejde med. Men umiddelbart lyder det som et problem omkring encoding. Altså: skriver du den pågældende fil med den samme encoding, som du læser den med? Og skriver du filen med den encoding, der svarer til de data, som svarer med til de strenge, du har at gøre med?
Her kommer min controller. <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Debcsv extends CI_Controller {
function __construct() { parent::__construct(); $this->is_logged_in(); // Load member model $this->load->model('Debcsv_model');
// Load form validation library $this->load->library('form_validation');
// Load file helper $this->load->helper('file'); } public function is_logged_in() { $is_logged_in = $this->session->userdata('is_logged_in'); if(!isset($is_logged_in) || $is_logged_in != true) { redirect('login'); } } public function index(){ $data = array();
// Get messages from the session if($this->session->userdata('success_msg')){ $data['success_msg'] = $this->session->userdata('success_msg'); $this->session->unset_userdata('success_msg'); } if($this->session->userdata('error_msg')){ $data['error_msg'] = $this->session->userdata('error_msg'); $this->session->unset_userdata('error_msg'); }
// Get rows $data['debcsv'] = $this->Debcsv_model->getRows();
// Load the list page view $this->load->view('templates1/header'); $this->load->view('debit/debitors/debcsv/index', $data); }
public function import(){ $data = array(); $memData = array();
// If import request is submitted if($this->input->post('importSubmit')){ // Form field validation rules $this->form_validation->set_rules('file', 'CSV file', 'callback_file_check');
// Validate submitted form data if($this->form_validation->run() == true){ $insertCount = $updateCount = $rowCount = $notAddCount = 0;
Starter i excel i colone 1a og skriver overskrifter med KOMMA mellem hver enhed. Og i kolonne 2a skriver jeg hvad den skal uploade til mysql men KOMMA mellem hver enhed
Jeg kan desværre ikke umiddelbart hjælpe dig. Dels har jeg ikke personligt nogen videre erfaring med CI, dels er det også stadig lidt uklart for mig, præcis hvor i processen, det går galt.
Som jeg har forstået det, så ønsker du at importere fra en csv-fil til en mysql-db? Er du sikker på, at databasen er sat til den rette encoding? Prøv evt. at lade dit php-script echo'e de værdier, som den henter fra csv-filen, så kan du se om det går galt allerede i læsningen, eller om det først er når der skrives til Mysql.
Men i øvrigt: Hvis du har købt den et sted fra, så burde det nu også være deres opgave, at få det til at virke... Det burde da uanset hvor man kommer fra være muligt at afprøve internationale tegn i konstruktionen...
Jeg har heller ikke så meget forstand på . Det er derfor jeg køber pakker og implanterer det i mit system. Det er bare træls jeg ikke kan uploade flere linjer ad gangen :-(( Hvis jeg gemmer csv filen i excel som csv utf-8 (commasepareret ) (.csv) og fjerner telefon nr så læser den alt korrekt surt sjov
Mit bedste råd til dig ville nok være at sende en datafil til dem, der har lavet pakken, der indeholder de tegn, som ikke virker nu, og så bede dem om at få det til at virke.
I forhold til det sidste du skriver, kan du så bekræfte, at det også virker hvis du gemmer filen som utf8 selvom der er telefonnumre? Hvis ja, så bekræfter det min formodning om, at det er et encoding-issue. Og så tænker jeg at det burde kunne løses forholdsvis simpelt -- fx vha mb_convert_encoding: https://www.php.net/manual/en/function.mb-convert-encoding.php
Men det afhænger jo lidt af, hvilken encoding, der normalt gemmes i i excel. Det ved jeg simpelthen ikke, men det burde det pågældende softwarehus meget nemt kunne finde ud af.
De har sagt de kan ikke løse det. Så det er derfor jeg lade ud på computerworld for se om der er en som kan løse det for mig. For det er meget vigtigt at jeg får det løst
#10 Så vil jeg helt sikkert finde et andet sted at købe units henne fremadrettet. For et softwarehus der ikke har styr på encoding, er altså absolut ikke værd at samarbejde med.
En mulighed kunne jo være at holde betalingen tilbage til de får styr på det.
Hvis det er for sent, så tænker jeg, at du kunne afprøve forslaget fra #9. Præcis hvor du skal sætte det ind synes jeg er svært at sige, eftersom du har været lidt upræcis i beskrivelsen af problemet. Men et sted at starte kunne være på brugen af $row-variablen efter "// Prepare data for DB insertion".
#12 Det har jeg ikke nej. Men sådan noget med encoding burde man have styr på efter et af de første semestre på en vilkårlig uddannelse med fokus på softwareudvikling. Så når et firma siger, at man ikke ser sig i stand til at løse sådan et problem, bør der absolut ikke sendes flere penge i deres retning.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.