Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dlaczego jest złe kodowanie znaków przy pobieraniu z MySQL?
Forum PHP.pl > Forum > PHP
gsmphone
Witam,

Posiadam strone z której pobierane są polskie znaki. Wszystko się pobiera tak jak trzeba. Natomiast gdy zrobiłem DropDown menu to już jest problem bo pojawiają się krzaczki:/ dlaczego tak sie dzieje?? Podaje ten kod:

locale.php:
Kod
<?
    
    

$dbhost = "localhost";
$dbuser = "*******";
$dbpass = "***********************";
$dbname    = "*********";
mysql_pconnect($dbhost,$dbuser,$dbpass) or die ("Unable to connect to MySQL server");  
mysql_query('SET $NAME \'latin2\'');



$data=$_GET['data'];
     $val=$_GET['val'];



     if ($data=='province') {
          echo "<select name='province' onChange=\"dochange('category', this.value)\">\n";
          echo "<option value='0'>==== Wybierz ====</option>\n";
          $result=mysql_db_query($dbname,"select loc_code,category from kategorie where parent = '0' and loc_code != '000000' order by category");
          while(list($id, $name)=mysql_fetch_array($result)){
               echo "<option value=\"$id\" >$name</option> \n";
          }
     } else if ($data=='category') {
          echo "<select name='category'>\n";
          echo "<option value='0'>======== Wybierz ========</option>\n";
        
$val2=$val;
$val = substr($val,0,2);


                              
          $result=mysql_db_query($dbname,"SELECT loc_code, category, podcategory FROM kategorie WHERE loc_code != '000000' and loc_code != '$val2' AND loc_code LIKE '$val%'  ORDER BY podcategory ");
          while(list($id, $name, $podcategory)=mysql_fetch_array($result)){  
              
               echo "<option value=\"$podcategory\" >$name</option> \n";
          }
     } else if ($data=='tumbon') {
          echo "<select  name='tumbon' >\n";
          echo "<option value='0'>======== Wybierz ========</option>\n";
          $val2=$val;
          $val = substr($val,0,4);
          $result=mysql_db_query($dbname,"SELECT loc_code, category, parent, location_name FROM kategorie WHERE loc_code != '000000' and loc_code != '$val2' AND loc_code LIKE '$val%' AND flag_disaster IS NULL ORDER BY category, loc_code");
          while(list($id, $name)=mysql_fetch_array($result)){
               echo "<option value=\"$id\" >$name</option> \n";
          }
     }
     echo "</select>\n";  
?>





oraz plik locale_dropdown.php:
Kod
<br>
<?    
     echo "<form name=sel>\n";
     echo "<font id=province><select>\n";
     echo "<option value='0'>=====Ładowanie======</option> \n";
     echo "</select></font>\n";
     echo "<br>";
     echo "<font id=category><select>\n";
     echo "<option value='0'>==== Wybierz ====</option> \n";
     echo "</select></font>\n";
    
    
?>
<head>


    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
</head>
<script language=Javascript>
function Inint_AJAX() {
   try { return new ActiveXObject("Msxml2.XMLHTTP");  } catch(e) {} //IE
   try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {} //IE
   try { return new XMLHttpRequest();          } catch(e) {} //Native Javascript
   alert("XMLHttpRequest not supported");
   return null;
};

function dochange(src, val) {
     var req = Inint_AJAX();
     req.onreadystatechange = function () {
          if (req.readyState==4) {
               if (req.status==200) {
                    document.getElementById(src).innerHTML=req.responseText;
               }
          }
     };
    
req.open("GET", "locale.php?data="+src+"&val="+val);
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=iso-8859-2");  
     req.send(null);

}


window.onLoad=dochange('province', -1);    
</script>
kicaj
Bylo wielokrotnie, poszukaj na forum
gsmphone
No własnie gdybym znalazł to bym sie nie pytał
defrag
Wystarczy wpisac magiczne slowo "kodowanie" w wyszukiwarce ;]
gsmphone
Kurde.... przeciez pisałem ze nic nie pomogło... kodowanie jest dobre tylko cos ze skryptem jest nietak bo tak jakby nie zauwazał tego ze ma kodowac tak. Zresztą niewazne... mogłbym wpisac utf8 czy byle jakie inne kodowanie i tak nie zadziała.
qrees
Generalnie ta linijka wygląda jakoś dziwnie:
  1. <?php
  2. mysql_query('SET $NAME 'latin2'');
  3. ?>

powinno być raczej tak:
  1. <?php
  2. mysql_query("SET NAME 'latin2'");
  3. ?>
gsmphone
Cytat(qrees @ 1.02.2008, 12:17:35 ) *
Generalnie ta linijka wygląda jakoś dziwnie:
  1. <?php
  2. mysql_query('SET $NAME 'latin2'');
  3. ?>

powinno być raczej tak:
  1. <?php
  2. mysql_query("SET NAME 'latin2'");
  3. ?>



Nic z tego, tez niedziała:/:/
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.