Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Ввод и вывод данных с MySQL / 18 сообщений из 18, страница 1 из 1
07.12.2015, 11:28:03
    #39122068
wiseking
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ввод и вывод данных с MySQL
Всем привет =)
Я начинающий Web программист, и у меня возникла такая беда, когда я ввожу данные в базу ( русские символы ) то на выводе они отображаются как "?????", хотя в самой phpMyAdmin в бд они отображаются нормально. Вот небольшой пример :
Ввод данных : http:// client-bd.ru/add.php
Вывод дынных : http:// client-bd.ru/lol.php
Вот код ввода :
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Ввод данных</title>
</head>

<body>
<form name="form1" method="post" action="ob.php">
<table>
<tr>
    <td width="113"><label for="textfield">Фамилия :</label></td>
    <td width="140"><input type="text" name="femeli" id="femeli"></td>
</tr>
  <tr>
    <td><label for="textfield2">Имя :</label></td>
    <td><input type="text" name="name" id="name"></td>
  </tr>
  <tr>
    <td><label for="textfield3">Отчество :</label></td>
    <td><input type="text" name="otchestvo" id="otchestvo"></td>
  </tr>
  <tr>
    <td><label for="number">Серия паспорта:</label></td>
    <td><input type="number" name="pas_s" id="pas_s"></td>
  </tr>
  <tr>
    <td><label for="number2">Номер паспорта:</label></td>
    <td><input type="number" name="pas_n" id="pas_n"></td>
  </tr>
  <tr>
    <td><label for="number3">Телефон:</label></td>
    <td><input type="number" name="telefon" id="telefon"></td>
  </tr>
  <tr>
    <td><label for="email">Email:</label></td>
    <td><input type="email" name="email" id="email"></td>
  </tr>
</table>
<tr>
  <td><input type="submit" name="submit" id="submit" value="Сохранить в базе"></td>
</tr>
</table>
</form>
</body>
</html>


Вот код после ввода, он обращается в обработчик :
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Обработка данных</title>
</head>
<?php


include ("mysql.php");
if (isset($_POST['femeli'])) {$femeli = $_POST['femeli']; if ($femeli == '') {unset($femeli);}}
if (isset($_POST['name'])) {$name = $_POST['name']; if ($name == '') {unset($name);}}
if (isset($_POST['otchestvo'])) {$otchestvo = $_POST['otchestvo']; if ($otchestvo == '') {unset($otchestvo);}}
if (isset($_POST['pas_n'])) {$pas_n = $_POST['pas_n']; if ($pas_n == '') {unset($pas_n);}}
if (isset($_POST['pas_s'])) {$pas_s = $_POST['pas_s']; if ($pas_s == '') {unset($pas_s);}}
if (isset($_POST['telefon'])) {$telefon = $_POST['telefon']; if ($telefon == '') {unset($telefon);}}
if (isset($_POST['email'])) {$email = $_POST['email']; if ($email == '') {unset($email);}}

?>

<?php

if (isset($femeli) && isset($name) && isset($otchestvo) && isset($pas_n) && isset($pas_s) && isset($telefon) && isset($email))
{
//Пишем что заносим в базу
$result = mysql_query ("INSERT INTO fiz (femeli,name,otchestvo,pas_n,pas_s,telefon,email) VALUES ('$femeli','$name','$otchestvo','$pas_n','$pas_s','$telefon','$email')");
if ($result == 'true') {echo "<p>Данные успешно сохранены</p>";}
else "<p>Ошибка</p>";
}
else
{
echo "<p>Вы ввели не все данные</p>"	;	
}
?>
<body>
</body>
</html>


С бд он разговаривает через отдельный фаил подключения :
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Подключение к БД</title>
</head>
<body>
<?php

$db = mysql_connect ("localhost", "u0118903_baza", "пароль");
mysql_select_db("u0118903_baza",$db);

$result = mysql_query("SELECT * FROM fiz",$db);
$myrow = mysql_fetch_array($result);

?>
</body>
</html>


И вот сам вывод данных :
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<?php
$db = mysql_connect ("localhost", "u0118903_baza", "пароль");
mysql_select_db("u0118903_baza",$db);

$result = mysql_query("SELECT * FROM fiz",$db);
$myrow = mysql_fetch_array($result);

do
{

echo $myrow["femeli"]."<br>";
echo $myrow["name"]."<br>";
echo $myrow["otchestvo"]."<br>";
echo $myrow["pas_n"]."<br>";
echo $myrow["pas_s"]."<br>";
echo $myrow["telefon"]."<br>";
echo $myrow["email"]."<br>";
}
while ($myrow = mysql_fetch_array($result));

mysql_select_db("uo118903_baza",$db); 

?>
<body>
</body>
</html>


Кодировка в БД ютф8, подскажите пожалуйста где я ошибся или что мне сделать для того что бы вывод данных был адекватным на русском языке. Зарание спасибо.
...
Рейтинг: 0 / 0
07.12.2015, 12:03:38
    #39122129
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ввод и вывод данных с MySQL
А что это Вы свои PHP-шные проблемы несёте в форум по MySQL?
Смотрите данные, которые находятся на сервере, с консоли сервера. Если там хрень - ищите косяк в своём PHP-коде, записывающем данные. Если там всё в порядке - ищите косяк в PHP-коде, который данные выводит.
...
Рейтинг: 0 / 0
07.12.2015, 12:10:58
    #39122144
wiseking
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ввод и вывод данных с MySQL
Akina, давайте включим логику, если бы я не смотрел и не пересматривал ищя проблему я бы сюда не писал, 100 раз код пересмотрел полностью, и не нашёл ошибку, скорее всего ошибка в синтаксисе базы или самих страниц выводка, как изменить синтаксис или может ошибка не в этом. Не нужно давать глупые советы ( мол пересмотри т т.д. т.п. ) я обратился за помощью ...
...
Рейтинг: 0 / 0
07.12.2015, 12:23:24
    #39122166
unutcon Mephi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ввод и вывод данных с MySQL
wiseking, Я не знаток , но в работе пришлось сталкиваться с подобной проблемой ( только интерфейс C++ MFC).
Код: plaintext
1.
SHOW GLOBAL VARIABLES LIKE 'char%' 

запрос покажет установленные кодировки, также необходимо посмотреть правила сравнения( collation).

Скажу на основе С++ ->Советую вам посмотреть на описание функции mysql_query ( и аналог mysql_real_query), т.к. первая функция работает с ANSI строками( т.е. 1 байт на символ) , а вторая должна иметь еще и размерность(lenght) запроса.(Все в пределах языка С++).

Т.е. возможно нужна отдельная функция, которая будет кодировать русские буквы в запросах.( на С++ использую MultiByteToWideChar( cp1251-UTF8) и наоборот .

Часто возникает подобная проблема, если не установлена кодировка при соединении ( SET...) , но то с чем сталкивался я, это в основном выделения utf8 от 1 до 3х байт на символ( русские буквы 2) , а стандартные кодировки Windows и Linux( cp125 и koir8(могу заблуждаться)) на русские символы выделяют 1 байт.
...
Рейтинг: 0 / 0
07.12.2015, 12:24:59
    #39122170
unutcon Mephi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ввод и вывод данных с MySQL
wiseking,

Akina имел ввиду, что вы привели в основном PHP код, а это другой раздел форума.
...
Рейтинг: 0 / 0
07.12.2015, 12:32:12
    #39122181
wiseking
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ввод и вывод данных с MySQL
unutcon Mephi,
Спасибо, но С++ я знаю плохо, поэтому облачно я понял что делать а вот как решить данную проблему в моей ситуации, увы нет =(
...
Рейтинг: 0 / 0
07.12.2015, 12:43:15
    #39122199
unutcon Mephi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ввод и вывод данных с MySQL
wiseking,

Попробуйте добавле в раздел после коннекта к базе запрос:
Код: plaintext
SET NAMES utf8

Что вам показывает :
Код: plaintext
show global variables like 'char%'
Все кодировки кроме filesystem в utf8?

Код: plaintext
show global variables like 'collation%'
Какие значения выдает этот запрос?
...
Рейтинг: 0 / 0
07.12.2015, 12:54:19
    #39122222
wiseking
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ввод и вывод данных с MySQL
unutcon Mephi,

Код: php
1.
mysql_set_charset( 'utf8' );


нечего не дало, а то что ниже написали то это вообще неизвестный код...
...
Рейтинг: 0 / 0
07.12.2015, 12:55:01
    #39122223
wiseking
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ввод и вывод данных с MySQL
unutcon Mephi,

Код: php
1.
mysql_query ("SET NAMES utf8");


тоже нечего не дало
...
Рейтинг: 0 / 0
07.12.2015, 13:05:56
    #39122249
unutcon Mephi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ввод и вывод данных с MySQL
wiseking,
А как вы тогда определили что у вас utf8 кодировка БД?

Запросы типа
Код: plaintext
show variables....
выполнять нужно в PhPMyAdmin( там же есть sqleditor) или в консоли.
Чтобы была возможность понять вашу проблему нужен результат этого запроса для 'char%' и 'colaltion'.
...
Рейтинг: 0 / 0
07.12.2015, 13:30:54
    #39122296
wiseking
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ввод и вывод данных с MySQL
unutcon Mephi,

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'show global variables like 'char%' LIMIT 0, 30' at line 2

Вот что выдал
...
Рейтинг: 0 / 0
07.12.2015, 13:50:49
    #39122324
unutcon Mephi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ввод и вывод данных с MySQL
а откуда at line 2? У меня запрос выполняется( скопипастил из ошибки) в гугле нету подобных проблем с этим запросом.
...
Рейтинг: 0 / 0
07.12.2015, 15:43:04
    #39122463
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ввод и вывод данных с MySQL
wisekingAkina, давайте включим логику, если бы я не смотрел и не пересматривал ищя проблему я бы сюда не писал
Убедительно прошу Вас, ссылаясь ТОЛЬКО на информацию, которую Вы разместили в теме, указать (со ссылкой на конкретный фрагмент Вашего текста), корректны ли данные, размещённые в таблицах базы данных при просмотре их на консоли сервера (а не в PHP-клиенте с использованием приведённого кода), или нет.
...
Рейтинг: 0 / 0
07.12.2015, 16:51:32
    #39122534
wiseking
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ввод и вывод данных с MySQL
Akina,

Вы хоть сами поняли что написали ? Лично Я нет ...
...
Рейтинг: 0 / 0
07.12.2015, 18:43:24
    #39122640
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ввод и вывод данных с MySQL
Объясняю для непонимающих.

У Вас цепочка от ввода корректных данных до вывода некорректных - длинная, состоящая из нескольких этапов. Чтобы понять, на каком этапе происходит порча данных, надо локализовать этот момент.
Я предлагаю начать с деления процесса пополам - на часть от ввода до попадания данных в БД и от попадания данных в БД до вывода. Для этого необходимо проверить, корректны ли данные в базе. А это можно сделать только просмотром данных, лежащих в таблицах БД, с консоли сервера (во всех остальных случаях в цепи отображения будет присутствовать дополнительный клиент, который может внести свои "поправки").

Вы этого не сделали. Вы всё щупаете "края" процесса, тогда как надо лезть в середину. Ну иногда пытаетесь внести какие-нибудь коррективы, надеясь, что авось поможет... Так что Ваше "ищя проблему" сродни рассматриванию неработающего автомобильного двигателя при открытом капоте - сколько в него не пялься, проблема не устранится, и колесо пинать бессмысленно, надо хотя бы за провода подёргать.
...
Рейтинг: 0 / 0
07.12.2015, 18:48:17
    #39122644
wiseking
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ввод и вывод данных с MySQL
Akina,

В том то и дело то что данные в БД отображаются корректно но выводя их он пишет "???"
...
Рейтинг: 0 / 0
07.12.2015, 19:02:40
    #39122654
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ввод и вывод данных с MySQL
wiseking,

header('Content-Type: text/html; charset=utf-8');

пробовали?

PS. Если в базе всё нормально, то это точно проблемы на стороне пхп.
...
Рейтинг: 0 / 0
07.12.2015, 19:43:13
    #39122683
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ввод и вывод данных с MySQL
wisekingданные в БД отображаются корректно
Эххх... ну нет так нет...
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Ввод и вывод данных с MySQL / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]