Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL][Access]Polskie znaki w MySQL i PHP
Forum PHP.pl > Forum > Przedszkole
kanclerzkoronny
Witam

Jestem samoukiem który powoli próbuje zrozumieć funkcjonowanie aplikacji w oparciu o php i mysql. Mój problem przedstawia się następująco.
Posiadam kilka baz w MS ACCESS 2003 wiec zastosowałem do konwersji tych baz darmowy programik Access to MySQL dzięki niemu przekonwertowałem bazy do MySQL mam zainstalowanego XAMPP i gdy odpalam phpMyAdmin i przeglądam zawartość po konwersji widzę że całość została przekonwertowana razem z polskimi znakami jak ą, ś, ć, ż, ź, ó. Do prezentacji danych z tych baz używam prostego programiku PHP Generator for MySQL który automatycznie generuje mi skrypt w PHP do prezentacji danych na stronie WWW. Lecz tutaj pojawia się problem bo na stronie www w miejscach gdzie są polskie znaki ą, ś, ć, ż, ź, ó. pojawiają się znaki zapytania (?) nic nie pomaga zmiana kodowania strony w przeglądarce. Kodowanie bazy w MySQL jest UTF_8_general_ci

Co trzeba zrobić by na stronie wyświetlały się normalnie polskie litery

oto ten skrypt
  1. <?php session_start();
  2.  if (isset($_GET["order"])) $order = @$_GET["order"];
  3.  if (isset($_GET["type"])) $ordtype = @$_GET["type"];
  4.  if (!isset($order) && isset($_SESSION["order"])) $order = $_SESSION["order"];
  5.  if (!isset($ordtype) && isset($_SESSION["type"])) $ordtype = $_SESSION["type"];
  6. ?>
  7. <html>
  8. <head>
  9. <title>staropolskie_chelm -- inwentarz_2</title>
  10. <meta name="generator" http-equiv="content-type" content="text/html; charset=UTF-8">
  11. <style type="text/css">
  12. </head>
  13. <body>
  14. <table class="bd" width="100%"><tr><td class="hr"><h2>>Źródła do historii wsi w księgach grodzkich i ziemskich</h2></td></tr></table>
  15. <?php
  16.  $conn = connect();
  17.  $showrecs = 20;
  18.  $pagerange = 20;
  19.  
  20.  $page = @$_GET["page"];
  21.  if (!isset($page)) $page = 1;
  22.  
  23.  select();
  24.  
  25.  if (isset($order)) $_SESSION["order"] = $order;
  26.  if (isset($ordtype)) $_SESSION["type"] = $ordtype;
  27.  
  28.  mysql_close($conn);
  29. ?>
  30. <table class="bd" width="100%"><tr><td class="href">http</td></tr></table>
  31. </body>
  32. </html>
  33.  
  34. <?php function select()
  35.  {
  36.  global $a;
  37.  global $showrecs;
  38.  global $page;
  39.  global $order;
  40.  global $ordtype;
  41.  
  42.  
  43.  if ($a == "reset") {
  44.    $order = "";
  45.    $ordtype = "";
  46.  }
  47.  
  48.  if ($ordtype == "asc") { $ordtypestr = "desc"; } else { $ordtypestr = "asc"; }
  49.  $res = sql_select();
  50.  $count = sql_getrecordcount();
  51.  if ($count % $showrecs != 0) {
  52.    $pagecount = intval($count / $showrecs) + 1;
  53.  }
  54.  else {
  55.    $pagecount = intval($count / $showrecs);
  56.  }
  57.  $startrec = $showrecs * ($page - 1);
  58.  if ($startrec < $count) {mysql_data_seek($res, $startrec);}
  59.  $reccount = min($showrecs * $page, $count);
  60. ?>
  61. <table class="bd" border="0" cellspacing="1" cellpadding="4">
  62. <tr><td>Table: inwentarz_2</td></tr>
  63. <tr><td>Records shown <?php echo $startrec + 1 ?> - <?php echo $reccount ?> of <?php echo $count ?></td></tr>
  64. </table>
  65. <hr size="1" noshade>
  66. <?php showpagenav($page, $pagecount); ?>
  67. <br>
  68. <table class="tbl" border="0" cellspacing="1" cellpadding="5"width="100%">
  69. <tr>
  70. <td class="hr"><a class="hr" href="inwentarz_2.php?order=<?php echo "tresc" ?>&type=<?php echo $ordtypestr ?>"><?php echo htmlspecialchars("tresc") ?></a></td>
  71. <td class="hr"><a class="hr" href="inwentarz_2.php?order=<?php echo "daty_miejsce" ?>&type=<?php echo $ordtypestr ?>"><?php echo htmlspecialchars("daty_miejsce") ?></a></td>
  72. <td class="hr"><a class="hr" href="inwentarz_2.php?order=<?php echo "karty" ?>&type=<?php echo $ordtypestr ?>"><?php echo htmlspecialchars("karty") ?></a></td>
  73. <td class="hr"><a class="hr" href="inwentarz_2.php?order=<?php echo "sygnatura_ksiegi" ?>&type=<?php echo $ordtypestr ?>"><?php echo htmlspecialchars("sygnatura_ksiegi") ?></a></td>
  74. <td class="hr"><a class="hr" href="inwentarz_2.php?order=<?php echo "uwagi" ?>&type=<?php echo $ordtypestr ?>"><?php echo htmlspecialchars("uwagi") ?></a></td>
  75. </tr>
  76. <?php
  77.  for ($i = $startrec; $i < $reccount; $i++)
  78.  {
  79.    $row = mysql_fetch_assoc($res);
  80.    $style = "dr";
  81.    if ($i % 2 != 0) {
  82.      $style = "sr";
  83.    }
  84. ?>
  85. <tr>
  86. <td class="<?php echo $style ?>"><?php echo htmlspecialchars($row["tresc"]) ?></td>
  87. <td class="<?php echo $style ?>"><?php echo htmlspecialchars($row["daty_miejsce"]) ?></td>
  88. <td class="<?php echo $style ?>"><?php echo htmlspecialchars($row["karty"]) ?></td>
  89. <td class="<?php echo $style ?>"><?php echo htmlspecialchars($row["sygnatura_ksiegi"]) ?></td>
  90. <td class="<?php echo $style ?>"><?php echo htmlspecialchars($row["uwagi"]) ?></td>
  91. </tr>
  92. <?php
  93.  }
  94. ?>
  95. </table>
  96. <br>
  97. <?php showpagenav($page, $pagecount); ?>
  98. <?php } ?>
  99.  
  100. <?php function showpagenav($page, $pagecount)
  101. {
  102. ?>
  103. <table class="bd" border="0" cellspacing="1" cellpadding="4">
  104. <tr>
  105. <?php if ($page > 1) { ?>
  106. <td><a href="inwentarz_2.php?page=<?php echo $page - 1 ?>"><< Prev</a> </td>
  107. <?php } ?>
  108. <?php
  109.  global $pagerange;
  110.  
  111.  if ($pagecount > 1) {
  112.  
  113.  if ($pagecount % $pagerange != 0) {
  114.    $rangecount = intval($pagecount / $pagerange) + 1;
  115.  }
  116.  else {
  117.    $rangecount = intval($pagecount / $pagerange);
  118.  }
  119.  for ($i = 1; $i < $rangecount + 1; $i++) {
  120.    $startpage = (($i - 1) * $pagerange) + 1;
  121.    $count = min($i * $pagerange, $pagecount);
  122.  
  123.    if ((($page >= $startpage) && ($page <= ($i * $pagerange)))) {
  124.      for ($j = $startpage; $j < $count + 1; $j++) {
  125.        if ($j == $page) {
  126. ?>
  127. <td><b><?php echo $j ?></b></td>
  128. <?php } else { ?>
  129. <td><a href="inwentarz_2.php?page=<?php echo $j ?>"><?php echo $j ?></a></td>
  130. <?php } } } else { ?>
  131. <td><a href="inwentarz_2.php?page=<?php echo $startpage ?>"><?php echo $startpage ."..." .$count ?></a></td>
  132. <?php } } } ?>
  133. <?php if ($page < $pagecount) { ?>
  134. <td> <a href="inwentarz_2.php?page=<?php echo $page + 1 ?>">Next >></a> </td>
  135. <?php } ?>
  136. </tr>
  137. </table>
  138. <?php } ?>
  139.  
  140. <?php function connect()
  141. {
  142.  $conn = mysql_connect("localhost", "root", "");
  143.  mysql_select_db("staropolskie_chelm");
  144.  return $conn;
  145. }
  146.  
  147. function sqlstr($val)
  148. {
  149.  return str_replace("'", "''", $val);
  150. }
  151.  
  152. function sql_select()
  153. {
  154.  global $conn;
  155.  global $order;
  156.  global $ordtype;
  157.  $sql = "SELECT `id`, `tresc`, `daty_miejsce`, `karty`, `sygnatura_ksiegi`, `uwagi` FROM `inwentarz_2`";
  158.  if (isset($order) && $order!='') $sql .= " order by `" .sqlstr($order) ."`";
  159.  if (isset($ordtype) && $ordtype!='') $sql .= " " .sqlstr($ordtype);
  160.  $res = mysql_query($sql, $conn) or die(mysql_error());
  161.  return $res;
  162. }
  163.  
  164. function sql_getrecordcount()
  165. {
  166.  global $conn;
  167.  global $order;
  168.  global $ordtype;
  169.  $sql = "SELECT COUNT(*) FROM `inwentarz_2`";
  170.  $res = mysql_query($sql, $conn) or die(mysql_error());
  171.  $row = mysql_fetch_assoc($res);
  172.  reset($row);
  173.  return current($row);
  174. } ?>



// 1. wklejając próbkę kodu używaj BBcode
// 2. przed napisaniem nowego posta warto użyć wyszukiwarki - jest duża szansa, że ktoś przed Tobą miał podobny problem
// 3. witaj na forum winksmiley.jpg
// ayeo
wookieb
1)bbcode
2) naucz się myśleć i szukać Temat: MYSQL_Polskie_znaki


// to pierwszy post ~kanclerzkoronny, bez przesady z tym "naucz się myśleć"!
// ayeo
kielich
po polaczeniu z baza daj
Kod
mysql_query ('SET NAMES latin2');
mysql_query ('SET CHARACTER_SET latin2_general_ci');

np
Kod
<?php
mysql_connect('localhost', 'login', 'haslo') or die (mysql_error ());
mysql_select_db('baza danych') or die (mysql_error ());

mysql_query ('SET NAMES latin2');
mysql_query ('SET CHARACTER_SET latin2_general_ci');

?>
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.