Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Mysql problem ze znaczkami
Forum PHP.pl > Forum > Bazy danych > MySQL
xamrex
Witam.
Otóż wysyłam takie zapytanie do mojej bazy MYSQL:

  1. CREATE TABLE `imieniny` (
  2. `data` date NOT NULL DEFAULT '0000-00-00',
  3. `imiona` text
  4. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
  5.  
  6. --
  7. -- Zrzut danych tabeli `imieniny`
  8. --
  9.  
  10. INSERT INTO `imieniny` VALUES('0000-01-01', 'óąśłżźć i Mieszka');
  11. INSERT INTO `imieniny` VALUES('0000-01-02', 'Izydora i Makarego');

I w phpmyadminie mam ładne polskie znaki..

Jak wpiszę
  1. SHOW VARIABLES LIKE "character_set%";

to dostaję:
Kod
character_set_client     utf8          
character_set_connection     utf8    
character_set_database     utf8      
character_set_filesystem     binary      
character_set_results     utf8          
character_set_server     latin1              
character_set_system     utf8


I teraz gdy chcę wyświetlić te wyniki na stronię to zaczyna się problem
Mój kod php to:
Kod
<?php
// nawiazujemy polaczenie
$connection = @mysql_connect('localhost', 'user, 'pass')
// w przypadku niepowodznie wyświetlamy komunikat
or die('Brak połączenia z serwerem MySQL.<br />Błąd: '.mysql_error());
// połączenie nawiązane;-)
echo "Udało się połączyć z serwerem!<br />";
// nawiązujemy połączenie z bazą danych
$db = @mysql_select_db('nazwa bazy', $connection)
// w przypadku niepowodzenia wyświetlamy komunikat
or die('Nie mogę połączyć się z bazą danych<br />Błąd: '.mysql_error());
// połączenie nawiązane;-)
echo "Udało się połączyć z bazą dancych!";

mysql_query('SET NAMES UTF8');



$zapytanie = "SELECT `data`,`imiona` FROM `imieniny`";
$idzapytania = mysql_query($zapytanie);

echo '<table>';
while ($wiersz = mysql_fetch_row($idzapytania))
  {
   echo '<tr><td>'. $wiersz[0] .'</td><td>'. $wiersz[1] .'</td></tr>';
  }
echo '<table>';

// zamykamy połączenie
mysql_close($connection);


?>

i na stronie pojawia się


A gdy w tym pliku php Usunę
mysql_query('SET NAMES UTF8');
TO na stronie pojawia się


Co robić??
mls
Co zrobić? Zostawić SET NAMES i albo ręcznie zmienić w przeglądarce kodowanie na UTF-8, albo wymusić to odpowiednim nagłówkiem... Niektórzy nigdy się nie nauczą, że przeglądarki nie są na tyle inteligentne by odgadnąć w jaki sposób kodowana jest strona, która żadnych nagłówków nie posiada...
slawcio
np.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf8">
</head>
<body>

<?php
// nawiazujemy polaczenie
$connection = @mysql_connect('localhost', 'user', 'pass');
// w przypadku niepowodznie wyświetlamy komunikat
or die('Brak połączenia z serwerem MySQL.<br />Błąd: '.mysql_error());
// połączenie nawiązane;-)
echo "Udało się połączyć z serwerem!<br />";
// nawiązujemy połączenie z bazą danych
$db = @mysql_select_db('nazwa bazy', $connection)
// w przypadku niepowodzenia wyświetlamy komunikat
or die('Nie mogę połączyć się z bazą danych<br />Błąd: '.mysql_error());
// połączenie nawiązane;-)
echo "Udało się połączyć z bazą dancych!";

mysql_query('SET NAMES UTF8');



$zapytanie = "SELECT `data`,`imiona` FROM `imieniny`";
$idzapytania = mysql_query($zapytanie);

echo '<table>';
while ($wiersz = mysql_fetch_row($idzapytania))
{
echo '<tr><td>'. $wiersz[0] .'</td><td>'. $wiersz[1] .'</td></tr>';
}
echo '<table>';

// zamykamy połączenie
mysql_close($connection);


?>
</body>
</html>
xamrex
dzięki
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.