Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]Import plików oraz problem z kodowaniem znaków
Forum PHP.pl > Forum > Przedszkole
nikos
Witam!
Mam taki problem chce pomóc pewnej Pani która ma chce zaimportować dane ze strony biura podróży. Oni udostępniają opis

Plik w formacie CSV:
seprartor: ,
ograniczniki pola: ""
strona kodowa: ISO 8859-2
Kolumny:
1) nazwa hotelu/imprezy
2) kraj
3) region
4) miejscowosc
5) kod imprezy na stronie
6) kod terminu na stronie
7) data poczatkowa
8) data końcowa
9) liczba noclegów
10) rodzaj wyżywienia
11) rodzaj dojazdu

CENA 1
12) rodzaj zakwaterowania
13) cena katalogowa za 1 os. w walucie podanej w 31 kolumnie
14) cena promocyjna za 1 os. w walucie podanej w 31 kolumnie

CENA 2
15) rodzaj zakwaterowania
16) cena katalogowa za 1 os. w walucie podanej w 31 kolumnie
17) cena promocyjna za 1 os. w walucie podanej w 31 kolumnie

18) ważne uwagi dotyczace terminu

19) opis: cena obejmuje
20) opis: cena nie obejmuje
21) opis: dopłaty obligatoryjne i opcjonalne
22) opis: zniżki

23) opis: hotel (zakwaterowanie)
24) opis: dodatkowe informacje (np. program wyjazdu i inf. praktyczne)

25) standard (np. 4, 3.5)
26) miejsce wylotu (samolot)
27) miejsce wyjazdu (autokar)
28) dodatkowe informacje do danego terminu (np. oferta ważna do...)

29) last minute t/n
30) promocja t/n
31) waluta

  • Wersja serwera: 5.0.67-log
  • Wersja protokołu: 10
  • Serwer: MySQL-5.0 via TCP/IP
  • Użytkownik: *********
  • System kodowania znaków dla MySQL: UTF-8 Unicode (utf8)
  • System porównań dla połączenia MySQL: latin2_bin
mogę zmienić tylko system porównań dla połączenia MySQL, system kodowania znaków nie mogę zmienić.
Strona jest w Joomla 1.0.x i kodowanie jest ustawione na ISO-8859-2

Gdy zaimportuje dane do bazy następnie chce je wyświetlić na stronie niestety nie ma Polskich znaków. A jak próbuje wyświetlić je poprzez skrypt
  1. <?php
  2.  
  3. // podłączamy plik connection2.php
  4. require "connection2.php";
  5. // wywołujemy funkcję connection()
  6. connection();
  7. mysql_query('SET NAMES utf8');
  8. /* zapytanie do konkretnej tabeli */
  9. $wynik = mysql_query("SELECT * FROM wygodne LIMIT 0,1")
  10. or die('Błąd zapytania');
  11. ?>
  12. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  13. <!-- saved from url=(0014)about:internet -->
  14. <html xmlns="http://www.w3.org/1999/xhtml">
  15. <head>
  16. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  17. <link href="style.css" rel="stylesheet" type="text/css" />
  18. </head>
  19. <body>
  20. <?php
  21. /*
  22. wyświetlamy wyniki, sprawdzamy,
  23. czy zapytanie zwróciło wartość większą od 0
  24. */
  25. if(mysql_num_rows($wynik) > 0) {
  26. /* jeżeli wynik jest pozytywny, to wyświetlamy dane */
  27.  
  28. echo '<div id="oferty">';
  29.  
  30. while($r = mysql_fetch_assoc($wynik)) {
  31. echo '<div class="oferta1">';
  32. echo '<div class="kraj">';
  33. echo $r['kraj'];
  34. echo '</div>';
  35. echo '<img src="http://www.wygodatravel.pl/imprezy-zdjecia-male/1471.jpg" alt=""/><br />';
  36. echo "Nazwa Hotelu: ".$r['nazwa hotelu/imprezy']."<br />";
  37. echo "Miejscowość: ".$r['miejscowosc']."<br />";
  38. echo $r['opis: cena obejmuje']."<br />";
  39. echo $r['cena promocyjna za os1']."<br />";
  40. echo $r['opis: hotel (zakwaterowanie)']."<br />";
  41. echo $r['ważne uwagi dotyczace terminu']."<br />";
  42.  
  43. echo "</div>";
  44. }
  45.  
  46. echo "</div>";
  47. }
  48.  
  49. ?>

Wyświetla się poprawnie. Pewno System kodowania znaków dla MySQL: [b] UTF-8 Unicode (utf8)
W jaki sposób to wszystko zrobić aby dobrze było wyświetlane? Jeśli ktoś wie proszę o radę
jasin
Najlepiej gbyby wszystko było w utf8 ... Może spróbuj przepuścić te dane przez
iconv
nikos
Cytat(jasin @ 2.10.2009, 12:10:55 ) *
Najlepiej gbyby wszystko było w utf8 ... Może spróbuj przepuścić te dane przez
iconv


Hmm tylko jak próbuje to zrobić ale mi wywala jakieś błędy. Można przekonwertować te znaki z utf8 na te co są na stronie tak?
jasin
Tak, chodziło mi o np:
  1. echo iconv("UTF-8", "ISO-8859-2", $text);
nikos
Dzięki, jeszcze mam w jednym miejscu tylko problem ale reszta wygląda spoko!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.