Jump to content
  • 0

Отображение знаками вопроса после выборки из базы


people2010
 Share

Question

Вот полное состояние моей базы, выражены на фото.

У меня есть файл 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.'   '.implode(' ', $navigation).'  '.$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 версии(там хостинг), такие кракозябры вылетают, уже не знаю что делать.

x8tP1PJUUH.jpg

8zQVHSA47E.jpg

WhORAiULiH.jpg

Link to comment
Share on other sites

20 answers to this question

Recommended Posts

  • 0
Блокнот - вряд ли. Дримвивер - более вероятно. Лично я предпочитаю scite или jedit, когда в линухе ;)

Вы его сейчас совсем запутаете еще и Линухом до кучи.

Думаю, раз человек про DW говорит, то он явно под виндой работает.

ТС, вам поможет в таком случае AkelPad или Notepad++

Link to comment
Share on other sites

  • 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

y5kuN0zHW9.jpg

X6IV60ImaZ.jpg

uq1WdzAPN3.jpg

GVuxFUrlrx.jpg

hUsU8g4EOJ.jpg

Edited by people2010
Link to comment
Share on other sites

  • 0

Везде поставил utf8, сработало наконец-то. Вопрос такой.

Почему если не прописать mysql_query("set names utf8"); не будет работать? Будет выдавать знаками вопроса.

Edited by people2010
Link to comment
Share on other sites

  • 0

LunatiK, stars,

От меня это в общем-то шутка была. :)

Намек топикстартеру, что надо быть внимательнее.

Ежу понятно, что данные, хранящиеся в кодировке DOS, а выводимые - в многобайтовой UTF8, будут отображаться некорректно.

Edited by d0ublezer0
Link to comment
Share on other sites

  • 0
Ты это завуалированно сказал что ТС так и не допёр, но собсно я на авторство и не притендую.

Да я не об этом. Я чет вдруг подумал что это меня юрлингом назвали :)

И на всякий, решил уточнить, что типа пошутил.

День сегодня какой-то.. сумбурный.

Edited by d0ublezer0
Link to comment
Share on other sites

  • 0

Как базу данных создать чтоб именно в кодировке нужной была ютф?

Пробую созданную изменить, не выходит, пробую так:

alter database voxri119_video default character set utf8_general_ci

Меня интересует именно как запросом написать, как ни пробовал постоянно ошибки.

CREATE DATABASE voxri119_video WITH ENCODING 'utf8';

Ошибка

SQL-запрос :

ALTER DATABASE `voxri119_video` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci

Ответ MySQL:

- You have an error in your SQL syntax near 'DATABASE `voxri119_video` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci' at line 1

[Документация] · [Назад]

Edited by people2010
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy