Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z kodowanie z excela do bazy danych
smiady
post 13.08.2014, 15:10:22
Post #1





Grupa: Zarejestrowani
Postów: 137
Pomógł: 2
Dołączył: 2.07.2007
Skąd: Ostrzeszów

Ostrzeżenie: (0%)
-----


Witam.

Zajmuję się importem danych z excela do bazy danych.

Mam taką importującą metodę:
  1. public function importBulk($file) {
  2. if(!file_exists($file))
  3. throw new DiscoveryException('Podana ścieżka do pliku nie istenieje !');
  4.  
  5. $excel= new Spreadsheet_Excel_Reader($file);
  6. $excel->setOutputEncoding('ISO-8859-2');
  7. $sql= 'INSERT INTO bulk(produkt, bulk) VALUES';
  8. $query= array();
  9. for($i= 2; $i<= $excel->rowcount(); ++$i) {
  10. $produkt= $this->code($excel->val($i, 1));
  11. $bulk= $this->code($excel->val($i, 2));
  12. array_push($query, "('$produkt', '$bulk')");
  13. }
  14. $sql.= implode(', ', $query);
  15. if(!mysql_query($sql))
  16. throw new DiscoveryException('Wystąpił błąd przy imporcie danych Bulk !');
  17. }

i po wpisaniu np. Małopolska ucinało na Ma i tak było z każdym polskim znakiem.

Napisałem do tego metodę:
  1. private function code($string) {
  2. $ascii= array('ą' => chr(185), 'Ą' => chr(165), 'ć' => chr(230),
  3. 'Ć' => chr(198), 'ę' => chr(234), 'Ę' => chr(202),
  4. 'ł' => chr(179), 'Ł' => chr(163), 'ń' => chr(241),
  5. 'Ń' => chr(209), 'ó' => chr(243), 'Ó' => chr(211),
  6. 'ś' => chr(156), 'Ś' => chr(140), 'ź' => chr(159),
  7. 'Ź' => chr(143), 'ż' => chr(191), 'Ż' => chr(175));
  8.  
  9. return str_replace($ascii, array_keys($ascii), $string);
  10. }

która rozwiązuje problem z każdym polskim znakiem oprócz ó - tylko ten jeden znak ucina.
Co robić ?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 06:27