1

Тема: Кодировки постоянно неработают

Эх эти кодировки. Это ужас. уже какой день я с ними мучаюсь...

Вот пишу гостевуху с БД.

-----------------------------------------------------
install.php Создаю для нее БД
add.php Добавление записей
index.php Главная она же просмотрщик
-----------------------------------------------------



install.php Создаю для нее БД

$connection = mysql_connect($host,$user,$password)
        or die("Не удалось выполнить с сервером");
    
    
    $query = "CREATE DATABASE IF NOT EXISTS gb";
    
    $result =  mysql_query($query)
        or die("Ошибка при выполнении запроса".mysql_error());
        
    echo "БД успешно содана <br>";
    
    $DBase = mysql_select_db($db,$connection)
        or die("Ошибка при выборе БД");
    
    $query = "CREATE TABLE gbdata (ID MEDIUMINT NOT NULL AUTO_INCREMENT, Name VARCHAR(20), Email VARCHAR(20), Msg TEXT,PRIMARY KEY (ID))";
    
    $result = mysql_query($query)
        or die("Ошибка при выполнении запроса".mysql_error());
    
    echo "Таблица успешно создана<br>";
    
    mysql_close($connection);

add.php Добавление записей

$connection = mysql_connect($host,$user,$password);
            or die("Не удалось подключиться к серверу");

        $New = mysql_select_db("gb",$connection);

        $query = "INSERT INTO gbdata (Name,Email,Msg) VALUES ('Антон','an214@rambler.ru','привет')";

        $result = mysql_query($query)
            or die("Ошибка при выполнении запроса".mysql_error());

        mysql_close($connection);

index.php Главная она же просмотрщик

$connection = mysql_connect($host,$user,$password);
    
    $DBase = mysql_select_db($db);
    
    $query = "SELECT * FROM gbdata";
    $result = mysql_query($query);
    
    echo '<table align = center style="border: 1px dotted #FFC1C1">';
    while ($row = mysql_fetch_array($result))
    {    echo"<tr>";
        echo "<td>".$row['ID']."</td>"."<td>".$row['Name']."</td>"."<td>".$row['Email']."</td>";
        echo"</tr>";
        echo"<tr>";
        echo "<td>".$row['Msg']."</td>";
        echo"</tr>";
    }
    echo "</table>";
    
    mysql_close($connection);

На этот раз решил запись создать также и в самом phpmyadmin
и добавлять через мой add.php

вот что я вижу в phpmyadmin
http://s59.radikal.ru/i164/0909/a7/95911e8e61ed.jpg

в браузере

4    Антон    an214@rambler.ru
привет
5    ??????    Sergey@rambler.ru
??????

также не пересчиталось ID почему то после удаление в phpmyadmin записей  sad

2

Re: Кодировки постоянно неработают

TWK
Во всех местах скрипта, где вызывается функция mysql_connect, сразу после нее добавьте строку устанавливающую кодировку соединения с MySQL.

mysql_query('SET NAMES cp1251');

Смените cp1251 на utf8, если страницы скрипта в юникоде.

3

Re: Кодировки постоянно неработают

поставил
mysql_query('SET NAMES utf8');

при добавление скриптом в add.php
ошибка
Ошибка при выполнении запроса
Incorrect string value: '\xD0\x90\xD0\xBD\xD1\x82...' for column 'Name' at row 1

А в PMA  все поля таблицы поля  "Сравнение" latin1_swedish_ci    O_O это нормально разве

4

Re: Кодировки постоянно неработают

TWK
Добавьте эту строку везде, включая install.php. Разумеется, следует переустановить скрипт удалив старую БД в неверной кодировке. Новая должна создаться в utf8.

Либо замените запрос на создание БД:

CREATE DATABASE IF NOT EXISTS `gb` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

5

Re: Кодировки постоянно неработают

оно или там нормально а там не нормально и на оборот. То в ПМА все правильно отображается, то в браузере правильно а в ПМА плохо.

Сообщение добавлено Sat Sep 12 15:23:22 2009
О. Сейчас вроде работает нормально. Спасибо smile