Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.10.2010, 03:02   #1
Kapitann
Заблокирован
 
Регистрация: 26.07.2010
Сообщений: 160
По умолчанию Отображение знаками после выборки из базы

Вот полное состояние моей базы, выражены на фото.
У меня есть файл 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;
};
?>
Kapitann вне форума Ответить с цитированием
Старый 26.10.2010, 03:02   #2
Kapitann
Заблокирован
 
Регистрация: 26.07.2010
Сообщений: 160
По умолчанию

На локальном компьютере всё достаёт русским, как пробую на
phpmyadmin 5 версии(там хостинг), такие кракозябры вылетают, уже не знаю что делать.
Изображения
Тип файла: jpg 01.jpg (51.0 Кб, 122 просмотров)
Тип файла: jpg 02.JPG (70.9 Кб, 116 просмотров)
Тип файла: jpg 03.jpg (69.8 Кб, 132 просмотров)
Kapitann вне форума Ответить с цитированием
Старый 26.10.2010, 09:43   #3
mrgrudge
Форумчанин
 
Аватар для mrgrudge
 
Регистрация: 20.02.2010
Сообщений: 229
По умолчанию

ну видимо из за различных кодировок на локалхосте и на хостинге, у меня сопссно такая же проблема была, решил просто, не забивать данными таблицы на локал хосте)
а вообще посмотрите кодировки и там и там, как исправите отпишитесь,мне тож интересно)
думай как баг, действуй как баг, и ты найдешь баг )
mrgrudge вне форума Ответить с цитированием
Старый 26.10.2010, 10:05   #4
KPEATuBHO
Форумчанин
 
Аватар для KPEATuBHO
 
Регистрация: 03.09.2010
Сообщений: 197
По умолчанию

Я думаю проблема в следующем:

в 1.php у вас написано <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />

а MySQL-кодировка стоит UTF-8 unicod

Чувствуете чем пахнет? Так что, меняем в 1.php <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> на <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

и все файлы обязательно сохраняем в той же кодировке.

Последний раз редактировалось KPEATuBHO; 26.10.2010 в 10:18.
KPEATuBHO вне форума Ответить с цитированием
Старый 26.10.2010, 20:14   #5
Adblock
Форумчанин
 
Аватар для Adblock
 
Регистрация: 25.04.2010
Сообщений: 184
По умолчанию

Может попробовать, установить кодировку БД через скрипт соединения. А может я ваш вопрос не так понял?
Online
Adblock вне форума Ответить с цитированием
Старый 27.10.2010, 06:54   #6
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Тут всё просто:
- после соединения с БД пишите
Код:
mysql_query("set character_set_client ='utf8'");
mysql_query("set character_set_results ='utf8'");
mysql_query("set collation_connection ='utf8_general_ci'");
вместо uft-8 свою кодировку.
Виталий Желтяков вне форума Ответить с цитированием
Старый 27.10.2010, 20:44   #7
Ruzarh
Пользователь
 
Регистрация: 20.11.2009
Сообщений: 11
По умолчанию

в корне еще можно создать файлик .htaccess
и в нем первой строкой
AddDefaultCharset UTF-8
Ruzarh вне форума Ответить с цитированием
Старый 27.10.2010, 21:59   #8
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Я смотрю маразм крепчает - у человека проблемы с данными из базы, т.к. у него база имеет кодировку отличную от utf-8. Ну, скажите на милость причем тут:
Код:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
и
Код:
AddDefaultCharset UTF-8
Первое определяем кодировку для браузера, а второе для php.
Kapitann, если хотите что бы работало, то у вас два варианта:
- Либо привести вашу базу, таблицы(!) в ней, мета-теги к одной кодировке (лучше если это будет utf-8),
- Либо использовать функции, которые я привел выше.
Виталий Желтяков вне форума Ответить с цитированием
Старый 31.10.2010, 02:47   #9
Kapitann
Заблокирован
 
Регистрация: 26.07.2010
Сообщений: 160
По умолчанию

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

Вот содержимое файла index.php.
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>
ВЫДАЁТ ЗНАКАМИ ВОПРОСА!!! Что делать?

Изображения
Тип файла: jpg 1.jpg (44.5 Кб, 134 просмотров)
Тип файла: jpg 2.jpg (34.0 Кб, 115 просмотров)
Тип файла: jpg 3.jpg (48.7 Кб, 119 просмотров)
Тип файла: jpg 4.jpg (60.4 Кб, 113 просмотров)
Тип файла: jpg 5.jpg (31.6 Кб, 63 просмотров)

Последний раз редактировалось Kapitann; 31.10.2010 в 02:00.
Kapitann вне форума Ответить с цитированием
Старый 31.10.2010, 10:27   #10
Linel
Форумчанин
 
Аватар для Linel
 
Регистрация: 21.02.2009
Сообщений: 372
По умолчанию

Вам же написАли. После соединения с базой добавьте:

Цитата:
mysql_query("set character_set_client ='utf8'");
mysql_query("set character_set_results ='utf8'");
mysql_query("set collation_connection ='utf8_general_ci'");
No name. Just Linel.
Linel вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выгрузка со знаками знак в скобках (`) chinn Microsoft Office Excel 5 20.07.2010 09:10
Выборки из бд Lokos БД в Delphi 6 15.12.2009 15:20
Отображение информации из базы данных (Delphi) flame33 Помощь студентам 6 13.12.2009 21:24
Чем отличается, если объявлять в классе переменные сразу после скобки и после public? TwiX Общие вопросы C/C++ 2 09.12.2009 16:11