Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> MySql - кодировка 
:(
    Опции темы
Golovastik
Дата 23.10.2010, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 19.7.2009

Репутация: нет
Всего: 0



В какой кодировке указывать надо, чтоб достало данные из майкл в русском виде а не знаками вопроса?
Что здесь поменять нужно? 


user posted image
PM MAIL   Вверх
Photon
Дата 24.10.2010, 22:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Злобный программер
**


Профиль
Группа: Участник
Сообщений: 282
Регистрация: 27.2.2009
Где: Таганрог

Репутация: 10
Всего: 12



Кодировка MySQL совершенно не важна..  Главное, чтоб она была с поддержкой русских букв.
Главное - не забыть первой же командой после соединения с базой выполнить 
Код

mysql_query('set names '.$encode);

где $encode - кодировка HTML, отправляемого браузеру (utf-8, cp1251 и т.д.)


--------------------
With best regards..
PM MAIL ICQ Skype GTalk Jabber   Вверх
Golovastik
Дата 26.10.2010, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 19.7.2009

Репутация: нет
Всего: 0



[color="DarkRed"]Вот полное состояние моей базы, выражены на фото.[/color]
У меня есть файл 1.php в нём такой код:
Код
<?php
include '../blocks/database.php';  /*Соединяемся с Базой Данных*/
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" type="text/css" href="../style.css" />
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Видеокурсы по заработку в Интернет</title>
</head>
<body>

<!--Шапка сайта -->
<?php include '../blocks/header.php' ?>

<!--Левая навигация-->
<?php include '../blocks/navigator_left_zar_v_internet.php' ?> 
   
<!--Правая навигация-->
<?php include '../blocks/navigator_right_zar_v_internet.php' ?> 
    
<!--Контент-->
<?php include '../blocks/kontent1.php' ?> 
<!--Copyright-->
<?php include '../blocks/footer.php' ?>    

</body>
</html>


Через файл kontent1.php я вывожу всё с базы на экран, вот содержимое
kontent1.php


Код
<div class="center">
<div class="zagolovok">Компьютерные видеокурсы для начинающих</div> <br /> 
<?php 
include '../blocks/database.php';  /*Соединяемся с Базой Данных*/
?>
 
                
<?php
//Число постов выводящих на странице
$num = 3;
@$page = $_GET['page'];
if(empty($page)){
$page = 1; 
}
  
$result = mysql_query("select COUNT(*) FROM lessons2",$connect);
$posts = mysql_result($result,0);
//Находим общее количество страниц
$chislo_str = intval(($posts-1)/$num)+1;
$page = intval($page);
//empty($page) Если переменной не существует или ее значение равно нулю
if(empty($page) or $page<0) $page = 1;
if($page > $chislo_str) $page = $chislo_str;
// Если ввести $page=7  тогда 7*3-3=18  
//с 18 поста будет выводится пост 18,19,20 на странице №7
$start = $page * $num - $num;  
 
 
/*--------------------Выводов Постов--------------------------------------*/
 
if ( isset ( $_GET['id'] ) ) {
    
    //Увеличиваем заданный счетчик
    $update = mysql_query ( "UPDATE `lessons2` SET `lessons2`.`obnovlenie` = `lessons2`.`obnovlenie` + 1 WHERE `lessons2`.`id` = {$_GET['id']} LIMIT 1" ) or die ( mysql_error() );
    //Запрос на выборку из нашей таблицы
    $query = mysql_query ( "SELECT * FROM `lessons2` WHERE `lessons2`.`id` = {$_GET['id']} LIMIT 1" ) or die ( mysql_error() );
    //Получаем результат
    $resalt = mysql_fetch_assoc ( $query );
    //Выводим полную новость
     echo $resalt['podrobnosti'];        
         // '<br /><a href="', $_SERVER['HTTP_REFERER'], '" title="Назад">Назад</a>';
 
}
else{
    //Запрос на выборку из нашей таблицы
 
$query = mysql_query ( "SELECT * FROM lessons2 LIMIT $start, $num" ) or die ( mysql_error() );
while ( $resalt = mysql_fetch_assoc ( $query ) ) {
 
   echo $resalt['text'],  '</a> <span class="prosmotrov" style="line-height:45px;">Просмотров: <span class="green schetok1">',$resalt['obnovlenie'], '</span></span> ';
   }
    
 
 
//------------------------------------------------
// Стрелка назад  
if($page>1)
$nazad= '<a class="knopka_nazad1" href= ./1.php?page='.($page-1).'>Назад</a>';
else $nazad= '<span class="knopka_nazad2">Назад</span>';
       
//Стрелка вперед  
if($page<$chislo_str)
$vpered = '<a class="knopka_vpered1" href= ../videolessons/1.php?page='.($page + 1).'>Вперёд</a>';
else $vpered= '<span class="knopka_vpered2">Вперёд</span>';
 
// Вывод меню  
$expand_to = 4; // сколько страниц должно показываться слева и справа от текущей
 
// начало и конец "соседних" страниц
$a = $page - $expand_to; if ($a < 1) $a = 1; 
$b = $page + $expand_to; if ($b > $chislo_str) $b = $chislo_str;
 
if ($a > 1) // надо ли показывать отдельно ссылку на первую и "..."
{
    $navigation[] = "<a href=\"./1.php?page=1\">1</a>";
    if ($a > 2) $navigation[] = "...";
}
 
// генерируем ссылки на "соседние" страницы
for ($i = $a; $i <= $b; $i++)
    $navigation[] = ($page == $i) ? '<span class="tek_str">'.$i.'</span>' : "<a class='str_nav' href=\"./1.php?page=$i\">$i</a>";
 
if ($b < $chislo_str) // надо ли показывать отдельно "..." и ссылку на последнюю
{
    if ($b < $chislo_str - 1) $navigation[] = '...';
    $navigation[] = "<a href=\"./1.php?page=$chislo_str\">$chislo_str</a>";
}
 
// выводим готовую навигацию
echo '<div class="navig"'.$nazad.'&nbsp;&nbsp; '.implode(' ', $navigation).'&nbsp;&nbsp;'.$vpered.'</div>';
}
?>
 </div>


Файл database.php
Код
<?php
  
$server = 'localhost'; //Имя сервера
$user = 'xai'; //Логин   
$password = '12345'; //Пароль
$db = 'video';
$table = 'lessons'; //Название таблицы
$error_database = '<h2>Произошла ошибка в базе данных,<br/>
в ближайшее время она будет устранена!</h2>';
$connect = mysql_connect($server,$user,$password);
if(!$connect){
echo $error_database;
exit;
};
//$connect по какому соединению мы работаем
$select = mysql_select_db($db,$connect);
if(!$select){
echo $error_database;
exit;
};
?>


На локальном компьютере всё достаёт русским, как пробую на
phpmyadmin 5 версии(там хостинг), такие кракозябры вылетают, уже не знаю что делать.

http://ipicture.ru/uploads/101026/aTPOID6w3V.jpg
 http://ipicture.ru/uploads/101026/MISnhcbhVJ.jpg
http://ipicture.ru/uploads/101026/166iFuyVyy.jpg
PM MAIL   Вверх
Golovastik
Дата 31.10.2010, 01:49 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 19.7.2009

Репутация: нет
Всего: 0



Для теста, создал 1 файл без никаких других файлов, чисто для того чтоб достать одну фразу с базы данных и вывести её на экран, всё равно выдало знаками вопроса.

Вот содержимое файла index.php.
Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" type="text/css" href="style.css" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="description" content=" " />
<meta name="keywords" content="" />
<title>Главная</title>
</head>
<body >




<!--Главная страница -->


<div style="text-align:center; margin-top:20px; color:#006633; font-family:Verdana, Arial, Helvetica, sans-serif;" >
<br />

<?php 


$server = 'localhost'; //Имя сервера
$user = 'voxri119_xai'; //Логин   
$password = 't37du78ah4'; //Пароль
$db = 'voxri119_video';
$table = 'lessons'; //Название таблицы
$error_database = '<h2>Произошла ошибка в базе данных,<br/>
в ближайшее время она будет устранена!</h2>';
$connect = mysql_connect($server,$user,$password);

if(!$connect){
echo $error_database;
exit;
};
mysql_query("set names utf-8");
//$connect по какому соединению мы работаем
$select = mysql_select_db($db,$connect);
if(!$select){
echo $error_database;
exit;
};


$z = mysql_query("select * from voxri119_video.privet",$connect);

$rez = mysql_fetch_assoc($z);

echo $rez['text'];



?>


</div>



</html>



ВЫДАЁТ ЗНАКАМИ ВОПРОСА!!! Что делать?

http://ipicture.ru/uploads/101031/3uTmbxD35R.jpg
http://ipicture.ru/uploads/101031/y5kuN0zHW9.jpg
http://ipicture.ru/uploads/101031/X6IV60ImaZ.jpg
http://ipicture.ru/uploads/101031/uq1WdzAPN3.jpg
http://ipicture.ru/uploads/101031/GVuxFUrlrx.jpg

Добавлено через 11 минут и 21 секунду
http://ipicture.ru/uploads/101031/hUsU8g4EOJ.jpg

Это сообщение отредактировал(а) Golovastik - 31.10.2010, 01:51
PM MAIL   Вверх
ayax2005
Дата 31.10.2010, 04:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


echo $smile
**


Профиль
Группа: Участник
Сообщений: 516
Регистрация: 17.4.2008
Где: Питер

Репутация: 2
Всего: 11



Дефис откуда взяли? "set names utf8" в 37-ю строчку вашего последнего листинга.


--------------------
все вопросы - из-за неверной формулировки задачи
PM MAIL ICQ   Вверх
bars80080
Дата 31.10.2010, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(ayax2005 @  31.10.2010,  04:11 Найти цитируемый пост)
Дефис откуда взяли? "set names utf8"

дефис, наверное, из стандарта взял (RCкакой-то). бывает такая ошибка

кстати, почему в mysql приняли к использованию без дефиса?
PM MAIL WWW   Вверх
Golovastik
Дата 31.10.2010, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 19.7.2009

Репутация: нет
Всего: 0



Везде поставил utf8, сработало наконец-то. Вопрос такой.
Почему если не прописать mysql_query("set names utf8"); не будет работать? Будет выдавать знаками вопроса?
PM MAIL   Вверх
bars80080
Дата 31.10.2010, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



будет вопросиками.
потому что он не знает, какая кодировка на клиенте, вот и надо указать.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0934 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.