|
|
|
| Прочитал на форуме, то что вы советовали одному userу и сделал тоже самое, но у меня при открытии файла отчет вместо русских букв отображаются знаки вопроса. Кодировку в командной строке DOS и в Mysql устанавливал. Помогите понять почему такое проиходит?
Это копия Вашей переписки с userом и то , что я сделал.
Помогите пожалуйста элементарно создать какую нибудь таблицу и с помощью PHP вносить туда данные. Или типа что нибудь токого. Мне главное разобраться с принципом работы mySql.
Ответить
автор: cheops (14.06.2006 в 12:41) письмо автору
Таблицу следует создавать в MySQL Front или в каком-нибудь другом клиенте. Запустите MySQL Front и укажите в качестве адреса сервера localhost, в качестве имени пользователя root, в качестве пароля пустую строку. Выберите базу данных test и создайте в ней таблицу
CREATE TABLE tbl (
field1 text NOT NULL,
field2 text NOT NULL,
field3 text NOT NULL,
field4 text NOT NULL
) TYPE=MyISAM;
Ответить
автор: Roo$ (14.06.2006 в 21:04) письмо автору
Создал таблицу. Теперь что дальше делать? Таблицу создавал второй прогай (Font)
Ответить
автор: Boss (14.06.2006 в 21:20) письмо автору
А дальше вам надо определиться что вы хотите получить из этой таблицы.
Но сначала надо внести данные в эту таблицу.
Ответить
автор: Roo$ (14.06.2006 в 22:34) письмо автору
А как вводить данные? Я хочу вводить данные через форму, например. Допустим у меня на форме есть text поле и button кнопка. По нажатию по кнопке данные, которые были введены в поле text, сохраняются в базу данных..
Ответить
автор: cheops (14.06.2006 в 22:47) письмо автору
Для этого следует создать код новую таблицу с одним текстовым полем
CREATE TABLE tbl1 (
field1 text NOT NULL,
) TYPE=MyISAM;
Далее необходимо создать HTML-форму
<form action=handler.php method=post>
<input type=text name=name>
<input type=submit value='Записать'>
</form>
HTML-форма отправит информацию обработчику handler.php, который может иметь следующий код
<?php
// Устанавливаем соединение с базой данных
require_once("config.php");
// Экранируем спец-символы
if (!get_magic_quotes_gpc())
{
$_POST['name'] = mysql_escape_string($_POST['name']);
}
// Формируем SQL-запрос на добавление информации
$query = "INSERT INTO tbl1 VALUES('$_POST[name]')";
if(!mysql_query($query)) exit(mysql_error());
else echo "Данные успешно добавлены";
?>
Для успешной работы данного скрипта, понадобится вспомогательный файл config.php, который устанавливает соединение с базой данных
<?php
// Адерс сервера MySQL
$dblocation = "localhost";
// Имя базы данных, на хостинге или локальной машине
$dbname = "shop";
// Имя пользователя базы данных
$dbuser = "root";
// и его пароль
$dbpasswd = "";
// Устанавливаем соединение с базой данных
$dbcnx = @mysql_connect($dblocation, $dbuser, $dbpasswd);
if (!$dbcnx) {
exit( "<P>В настоящий момент сервер базы данных не доступен,
поэтому корректное отображение страницы невозможно.</P>" );
}
// Выбираем базу данных
if (! @mysql_select_db($dbname, $dbcnx) ) {
exit( "<P>В настоящий момент база данных не доступна,
поэтому корректное отображение страницы невозможно.</P>" );
}
// Определяем версию сервера
$query = "SELECT VERSION()";
$ver = mysql_query($query);
if(!$ver) exit("Ошибка при определении версии MySQL-сервера");
$version = mysql_result($ver, 0);
list($major, $minor) = explode(".", $version);
// Если версия выше 4.1 сообщаем серверу, что будем работать с
// кодировкой cp1251
$ver = $major.".".$minor;
if((float)$ver >= 4.1)
{
mysql_query("SET NAMES 'cp1251'");
}
?>
Ответить
автор: Roo$ (14.06.2006 в 23:35) письмо автору
Теперь как мне вывести (прочитать) эти сведения (внесенные в таблицу) в отдельную форму (например otchet.php)
Ответить
автор: cheops (14.06.2006 в 23:57) письмо автору
Для этого обычно используют скрипт
<?php
// Устанавливаем соединение с базой данных
require_once("config.php");
// Формируем SQL-запрос на извлечение информации
$query = "SELECT * FROM tbl1";
$tbl = mysql_query($query);
if(!$tbl) exit(mysql_error());
// Если имеется хоть одна запись - выводим
if(mysql_num_rows($tbl))
{
while($table = mysql_fetch_array($tbl))
{
echo $table['field']."<br>";
}
}
?> | |
|
|
|
|
|
|
|
для: Gagus
(27.09.2006 в 21:39)
| | >Кодировку в командной строке DOS и в Mysql устанавливал.
Опишите вашу последовательность действий? Вы данные набивате в консольной утилите mysql? Перед тем как набивать русский текст выполняете запрос?
PS тему не нужно дублировать, можно на неё просто сослаться. | |
|
|
|
|
|
|
|
для: cheops
(27.09.2006 в 22:35)
| | 1.В командной строке DOS выполняю команду chcp1251
2.Пишу команду mysql -u root -p ввожу пароль
3.В командной строке mysql создаю две таблицы.
4.При создании таблиц после type=myisam пишу charset=cp1251.( надо ли это делать?)
5.Проверяю кодировку таблиц SHOW CREATE TABLE имя таблицы, выдается сообщение default charset=cp1251.
6.В браузере открываю файл forma.html и ввожу данные.Сообщение: данные были успешно внесены.
7. В браузере открываю файл otchet.php там пусто. Сообщений никаких нет. ( а если при создании таблиц не выполнять пункт 4- то при открытии отчета будут знаки вопроса)
8.Если выполнить в командной строке mysql selest * from имя таблицы -то будут знаки вопроса, если выполнить команду set names 'cp866' , а потом select то станет все по- русски. Но в файле отчет в браузере, пустота.
9.И еще один дурацкий вопрос. Файлы: forma.html, otchet.php, handler.php записаны все в один каталог
C:\Program Files\Apache Group\Apache2\htdocs\SCRIPTS правильно ли это? Подскажите , а!!!! | |
|
|
|
|
|
|
|
для: Gagus
(28.09.2006 в 10:22)
| | 1) Команду chcp1251 следует писать с пробелом chcp - это команда, а 1251 - это параметр
Поэтому у вас судя повсему и DOS-ская кодировка остаётся, что команда не срабатывает.
9) Это нормально, но если вам не удобно хранить их там, можно организовать виртуальный хост и указать любую другую директорию для хранения PHP и HTML-файлов http://www.softtime.ru/article/index.php?id_article=24. | |
|
|
|
|
|
|
|
для: cheops
(28.09.2006 в 12:24)
| | Проверил как Вы сказали, все тоже самое. | |
|
|
|
|
|
|
|
для: Gagus
(28.09.2006 в 23:14)
| | 1) В свойствах посмотрите шрифт - выбран Lucida Console или точечный?
2) после смены кодировки, набирите команду chcp без параметров - что она выдаёт?
3) У вас какая операционная система? | |
|
|
|
|
|
|
|
для: cheops
(29.09.2006 в 10:55)
| | Сам не понял как, но у меня все получилось! Все отображается по русски. Теперь вот какая проблема. Установил PHPmyAdmin. Открываю в нем базу свою, таблицу всепо-русски.У таблицы кодировка 1251. Теперь создаю через Admin базу и вней таблицу, завожу записи, просматриваю через обзор - знаки вопросов. Командами в Mysql тоже самое. Кодировка у таблицы latin1. Но ведь она задается Adminom. Как поправить ситуфцию, помогите !!!! | |
|
|
|
|
|
|
|
для: Gagus
(01.10.2006 в 00:46)
| | Кодировку latin1 следует сменить на cp1251, в PHP-коде сразу после того, как устанавливаете соединение с MySQL-сервером, необходимо настроить кодировку при помощи запроса
<?php
mysql_query("SET NAMES 'cp1251'");
?>
|
| |
|
|
|