Отображение данных в Броузере.

Holon

Новичок
Отображение данных в Броузере.

Есть два вопроса первый, это на экране броузера я должен отобразить таблицу с
данными считываемыми из MySQL, порядок строк должен отображатся по дате выхода,
эту задачу я решил без проблем:

PHP:
$q = mysql_query ("SELECT * FROM INFO ORDER BY DATE_EX");
теперь задача усложняется строки должны менять цвет в зависимости от того,
какая дата реально на сервере и дата выхода, например если дата выхода и
реальная дата совпадают то строка становится розового цвета, если дата выхода
меньше реальной даты то строка становится зеленого цвета, ну и если наоборот то красного, подскажите направление решения задачи, я предпологаю, что есть два
варианта первый это сравнивать дату на самом mysql и хранить ее в БД,и второй
вариант, сравнивать дату в самом php-коде, как будет правильнее ?

И второй вопрос, это отображение данных запрашиваемых с сервера, иммеется ввиду,
отображение иностранных языков в моем случае Иврита, хочу заметить, что при
использовании "phpMyAdmin" Иврит в таблице отобразается нормально,а в окне
"MySQL monitor" при отображении таблицы записи на иврите выглядят "????????"
в "phpMyAdmin" "Collation" установлено "hebrew_bin", в коде программы в
атрибутах таблицы внес следуюсщее: "lang = he", все записи которуе не взяты с
MySQL, а просто записаны в коде отобразаются нормально, в чем проблема? Где и
какие настройки надо просмотреть, чтобы изменить ситуацию.
 

Ermitazh

Новичок
1.
если дата выхода и
реальная дата совпадают то строка становится розового цвета, если дата выхода
меньше реальной даты то строка становится зеленого цвета, ну и если наоборот то красного
тебе нужен оператор IF и данные из бд.

2. в качестве кодировки советую использовать utf-8. А вообще то лучше сходить в поиск и в FAQ. Эти темы там очень хорошо разжёваны.
 

Holon

Новичок
У меня в "utf8" нет иврита, я пробовал "utf8_unicode_ci" и "utf8-bin" все остается по прежнему "?????????" в "FAQ" решение этой проблемы ненашел.
 

phprus

Moderator
Команда форума
Holon
А ты из скрипта кодировку соединения устанавливал? (Как это сделать написано в FAQ.) Если да, то как?
 

Holon

Новичок
Сейчас FAQ находится на "Profilaktika",
Когда я подключаюсь к серверу, я неуказываю кодировку,
Вот весь код:
PHP:
<?php
//   http://localhost/infoscreen.php
//   http://www.php.su/mysql/?functions
$host = "localhost";
$user = "vldsa";
$password = "12345";
$db =  "client";
if (!mysql_connect($host, $user, $password))
{
echo "<h2>MySQL Error!</h2>";
exit;
}
mysql_select_db($db);

echo "<table border=\"1\" width=\"100%\" bgcolor=\"#FF4040\" lang=\"he\">";

echo "<tr><td>NPP</td><td>DATE</td><td>&#236;&#247;&#229;&#231;</td><td>MAN_NO</td>";
echo "<td>ORD_NO</td><td>CUST_NO</td><td>DATE_EX</td></tr>";

$q = mysql_query ("SELECT * FROM INFO ORDER BY DATE_EX");
for ($c=0; $c<mysql_num_rows($q); $c++)

{
$f = mysql_fetch_array($q);

echo "<tr lang=\"he\"><td>$f[NPP]</td><td>$f[DATE]</td><td>$f[CUSTOMER]</td>";
echo "<td>$f[MAN_NO]</td><td>$f[ORD_NO]</td><td>$f[CUST_NO]</td><td>$f[DATE_EX]</td></tr>";
}
echo "</table>";
mysql_close();
?>
Вот такие кодировки на сервере:
mysql> show variables like '%chara%';
+--------------------------+----------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_results | latin1 |
| character_set_server | cp1251 |
| character_set_system | utf8 |
| character_sets_dir | \usr\local\mysql4/share/charsets |
+--------------------------+----------------------------------+
7 rows in set (0.00 sec)
 

phprus

Moderator
Команда форума
Holon
| character_set_client | latin1 |
А что ты хотел? У тебя кодировка соединения не utf8

Ответа на решение вопроса ненашел.
Очень похоже что не искал.
Вот ссылка:
http://web.archive.org/web/20061231105933/phpclub.ru/faq/wakka.php?wakka=Mysql41Rus
Читай раздел: "1. PHP ИСПОЛЬЗУЕТ НЕВЕРНУЮ КОДИРОВКУ В КАЧЕСТВЕ КЛИЕНТСКОЙ"
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Ответа на решение вопроса ненашел.
Ну тогда, к сожалению, Вам никто не сможет помочь.

Вот такие кодировки на сервере:
Список доступных кодировок можно получить немного по другому

show character set;
 

Holon

Новичок
Вот нашел кое-что на php.su
CHARSET может принимать одно из следующих значений: big5, cp1251, cp1257, czech, danish, dec8, dos, euc_kr, gb2312, gbk, german1, hebrew, hp8, hungarian, koi8_ru, koi8_ukr, latin1, latin2, sjis, swe7, tis620, ujis, usa7 или win1251ukr,

теперь осталось разобраться с синтаксисом SET CHARSET, но это совсем другое направление, здесь я конфигурирую сервер, а не меняю скрипт, вообще ребята необижайтесь, я здесь человек новый, но все ответы, больше похожи на насмешки,
такого жесткого форума я еще нигде невстречал, в общем одним словом "Жесть"
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
такого жесткого форума
Без обид.
1. Вас здесь никто не держит.
2. В этом форуме не принято давать готовых ответов. А лишь подталкивать к их получению. Если Вы привыкли к готовым ответам то, к сожалению, данный форум вам вряд-ли подойдёт.

разобраться с синтаксисом SET CHARSET
И в чём проблема? Нужно лишь посмотреть результаты по запросу в гугле. Страницы мануала ВАм никто цитировать не будет.

Ссылка phprus Вам ну уж совсем не помогла?
 

Holon

Новичок
результат тот-же "???????" сервер настроен следующим образом

mysql> set character_set_client='hebrew';
Query OK, 0 rows affected (0.00 sec)

mysql> set character_set_connection='hebrew';
Query OK, 0 rows affected (0.00 sec)

mysql> set character_set_database='hebrew';
Query OK, 0 rows affected (0.00 sec)

mysql> set character_set_results='hebrew';
Query OK, 0 rows affected (0.00 sec)

mysql> set character_set_server ='hebrew';
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like '%chara%';
+--------------------------+----------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------+
| character_set_client | hebrew |
| character_set_connection | hebrew |
| character_set_database | hebrew |
| character_set_results | hebrew |
| character_set_server | hebrew |
| character_set_system | utf8 |
| character_sets_dir | \usr\local\mysql4/share/charsets |
+--------------------------+----------------------------------+
7 rows in set (0.00 sec)

попытка запустить сервер с использованием C:\my.cnf файла привела к тому, что сервер перестал подниматся, поэтому он был переименован и перенесен в другое место для временного хранения, содержание файла следующее:

default-character-set=hebrew

[client]
port=3306
character-sets-dir=C:/WebServers/usr/local/mysql4/share/charsets/
default-character-set=hebrew

[server]
bind-address=127.0.0.1
port=3306
basedir=C:/WebServers/usr/local/mysql4/
datadir=C:/WebServers/usr/local/mysql4/data
tmpdir=c:/tmp/
character-sets-dir=C:/WebServers/usr/local/mysql4/share/charsets/
default-character-set=hebrew

skip-character-set-client-handshake
 

Holon

Новичок
это я оговорился извиняюсь, я писал выше, что тот иврит который неберется с MySQL
выглядит нормально, шрифты есть, а на стрничку в нете смотреть рановато, все в стадии разработки на локальном компьютере я пытаюсь учится, штудирую материалы,
многое непонятно, просто раньше я никогда несталкивался с web технологиями, я пишу в LISP-е, а в этом языке решаются другие задачи несвязанные с web-технологиями.
 

Фанат

oncle terrible
Команда форума
у тебя сами данные в какой кодировке?
страницы в какой кодировке?
сервер отдает заголовок с какой кодировкой?
 

Holon

Новичок
-~{}~ 22.10.07 15:51:

Все попорядку, запускаю сервер под root - ом
C:\WebServers\usr\local\mysql4\bin\mysql -u root
проверяю кодировки:
mysql> show variables like '%chara%';
+--------------------------+----------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | cp1251 |
| character_set_results | latin1 |
| character_set_server | cp1251 |
| character_set_system | utf8 |
| character_sets_dir | \usr\local\mysql4/share/charsets |
+--------------------------+----------------------------------+
7 rows in set (0.00 sec)
Дальше меняю кодировки:
mysql> set character_set_client='hebrew';
Query OK, 0 rows affected (0.00 sec)

mysql> set character_set_connection='hebrew';
Query OK, 0 rows affected (0.00 sec)

mysql> set character_set_database ='hebrew';
Query OK, 0 rows affected (0.00 sec)

mysql> set character_set_results ='hebrew';
Query OK, 0 rows affected (0.00 sec)

mysql> set character_set_server='hebrew';
Query OK, 0 rows affected (0.00 sec)
Опять проверяю кодировки:
+--------------------------+----------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------+
| character_set_client | hebrew |
| character_set_connection | hebrew |
| character_set_database | hebrew |
| character_set_results | hebrew |
| character_set_server | hebrew |
| character_set_system | utf8 |
| character_sets_dir | \usr\local\mysql4/share/charsets |
+--------------------------+----------------------------------+
7 rows in set (0.00 sec)
теперь ввожу значение в таблицу на Иврите, Иврит отобразается неправильно
mysql> use client;
Database changed
mysql> UPDATE INFO SET CUSTOMER = '&#1493;&#1500;&#1491;&#1497;&#1502;&#1497;&#1512;' WHERE NPP = 1;
Query OK, 0 rows affected (0.05 sec)
Rows matched: 1 Changed: 0 Warnings: 0
теперь просматриваю таблицу:
mysql> SELECT * FROM INFO;
+-----+------------+----------+--------+--------+---------+------------+
| NPP | DATE | CUSTOMER | MAN_NO | ORD_NO | CUST_NO | DATE_EX |
+-----+------------+----------+--------+--------+---------+------------+
| 1 | 2007-10-18 | &#1493;&#1500;&#1491;&#1497;&#1502;&#1497;&#1512; | 9000 | 20300 | 128127 | 2007-10-07 |
| 2 | 2007-10-06 | New_Name | 9001 | 20301 | 128128 | 2007-10-21 |
| 3 | 2007-10-06 | OGOGO | 9001 | 20301 | 128128 | 2007-10-19 |
+-----+------------+----------+--------+--------+---------+------------+
3 rows in set (0.00 sec)
Иврит отобразается неправильно, возмозно из-за того, что зашел под именем root
Теперь запускаю следующий скрипт
PHP:
<?php
//   [url]http://localhost/infoscreen.php[/url]
//   [url]http://www.php.su/mysql/?functions[/url]
$host = "localhost";
$user = "vldsa";
$password = "12345";
$db =  "client";
if (!mysql_connect($host, $user, $password))
{
echo "<h2>MySQL Error!</h2>";
exit;
}
mysql_select_db($db);

echo "<table border=\"1\" width=\"100%\" bgcolor=\"#FF4040\" lang=\"he\">";

echo "<tr><td>NPP</td><td>DATE</td><td>&#236;&#247;&#229;&#231;</td><td>MAN_NO</td>";
echo "<td>ORD_NO</td><td>CUST_NO</td><td>DATE_EX</td></tr>";

$q = mysql_query ("SELECT * FROM INFO ORDER BY DATE_EX");
for ($c=0; $c<mysql_num_rows($q); $c++)

{
$f = mysql_fetch_array($q);

echo "<tr lang=\"he\"><td>$f[NPP]</td><td>$f[DATE]</td><td>$f[CUSTOMER]</td>";
echo "<td>$f[MAN_NO]</td><td>$f[ORD_NO]</td><td>$f[CUST_NO]</td><td>$f[DATE_EX]</td></tr>";
}
echo "</table>";
mysql_close();
?>
Проверяю кодировку страницы Hebrew(Windows)
Иврит взятый кодом из сервера отображается знаками вопросов.
 

Фанат

oncle terrible
Команда форума
у тебя данные в базе лежат в какой кодировке?
скрипты написаны в какой кодировке?
веб-сервер отдает заголовок с какой кодировкой?
 

Holon

Новичок
Кстати все копировалось и вставлялось из окна сервера, и здесь на форуме Иврит отображается нормально.

-~{}~ 22.10.07 15:58:

Можно поподробней как я могу проверить кодировку, которую отдает сервер?
 

Фанат

oncle terrible
Команда форума
http://phpfaq.ru/na_tanke#headers
на остальные вопросы сначала ответь
 

Holon

Новичок
Да я вроде ответил

+--------------------------+----------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------+
| character_set_client | hebrew |
| character_set_connection | hebrew |
| character_set_database | hebrew |
| character_set_results | hebrew |
| character_set_server | hebrew |
| character_set_system | utf8 |
| character_sets_dir | \usr\local\mysql4/share/charsets |
+--------------------------+----------------------------------+
 
Сверху