Перейти к содержимому

Фото
- - - - -

Помогите советом как правильно и практично.


  • Закрытая тема Тема закрыта
21 ответов в этой теме

#1 PressSetter

PressSetter

    Крестный Папочка

  • Постоялец
  • 2 323 сообщений
  • Откуда:Таллинн

Отправлено 07 октября 2008 - 17:20

Ув. господа-программисты.

У меня такая проблема возникла.

Создаю сайт щас, посвященная объявлениям.
Так вот возникла глобальная проблема.

Сайт на двух языках, 2 таблицы с одинаковыми столбцами отличие только в языке. 1 русская вторая эстонская.

Русский пользователь добавляет в русскую базу, эст. пользователь в эстонскую. Но как мне сделать, чтобы при запросе выдавала информацию из двух таблиц на 1 языке?

Например. Я посылаю запрос чтобы мне сайт выдал все существующие объявления. Соответственно на русском языке.

Если вопрос задан некорректно, прошу переспросить.
Извиняюсь за неудобства.



Есть вариант, чтобы в таблицу заносить не информацию, а конкретные числа и придать им значения в соотвествии с выбранным языком. вариант? Если да, то как это реализовать, наведите на путь истинный.) Спасибо народ!
  • 0

#2 DTprog

DTprog
  • Пользователь
  • 80 сообщений
  • Откуда:Tartu

Отправлено 07 октября 2008 - 18:31

Я так понимаю, что объявления добавляются, грубо выражаясь, в две таблицы. Одна для эстонских, другая для русских объяв? И если человек сидит на сайте на русском языке, то ему выдаются объявления только русские и наоборот, если на эстонском языке - только эстонские? Это имеется ввиду?
  • 0
Когда усилия науки прольют везде елей и мед,
По любопытству иль со скуки все это кто-нибудь взорвет.

#3 PressSetter

PressSetter

    Крестный Папочка

  • Постоялец
  • 2 323 сообщений
  • Откуда:Таллинн

Отправлено 07 октября 2008 - 18:51

DTprog, да, именно так
как совместить?
  • 0

#4 PressSetter

PressSetter

    Крестный Папочка

  • Постоялец
  • 2 323 сообщений
  • Откуда:Таллинн

Отправлено 07 октября 2008 - 21:58

Шо, никто не знает?(
  • 0

#5 Акей

Акей

    Смотрит свысока

  • Постоялец
  • 2 134 сообщений

Отправлено 07 октября 2008 - 22:19

AgentVlad, так сделай в таблицу еще одну колонку - язык и пусть все вводят в одну и ту же таблицу. А там ты зухе если надо отфильтруешь по нужному языку
  • 0

#6 Setor

Setor
  • Постоялец
  • 1 890 сообщений
  • Откуда:Эстония, Таллин

Отправлено 08 октября 2008 - 10:05

union select
  • 0

#7 PressSetter

PressSetter

    Крестный Папочка

  • Постоялец
  • 2 323 сообщений
  • Откуда:Таллинн

Отправлено 08 октября 2008 - 10:18

так нет...
Пользователь должен видеть все объявления и эстонские и русские, беда в том, что они должны ВСЕ видеть на ОДНОМ языке
  • 0

#8 Setor

Setor
  • Постоялец
  • 1 890 сообщений
  • Откуда:Эстония, Таллин

Отправлено 08 октября 2008 - 10:21

Тогда сделай 1 таблицу, пусть в неё добавляют и русские и эстонцы. У тебя какая-то глупая проблема. Если хочется использовать 2 таблицы, то для того, чтобы объединить результат 2х выборок из 2х таблиц используй UNION

P.S. 2 таблицы для разных языков - это ошибка архитектуры, она ещё не раз встанет боком.
  • 0

#9 PressSetter

PressSetter

    Крестный Папочка

  • Постоялец
  • 2 323 сообщений
  • Откуда:Таллинн

Отправлено 08 октября 2008 - 20:20

Setor, не сечешь. Пусть даже одна таблица.

Название Местонахождение Цена

Куртка таллиннн 350.-
Kleit keila 600.-


Если я русский на сайте пошлю запрос показать все обявы мне выдаст

Куртка таллиннн 350.-
Kleit keila 600.-

А мне надо чтоб на русском было.

Вот эту тупую проблему не знаю как лучше решить...
По ходу здесь программистов мало :mellow:
  • 0

#10 .NET

.NET
  • Постоялец
  • 3 511 сообщений

Отправлено 08 октября 2008 - 21:22

AgentVlad, Это не программирование, а банальная логика. Дополнительное поле LANG ( с вариантами RU/EE ) добавить в таблицу конечно же религия не позволяет. ( Куртка - Таллинн - 350 - RU, Kleit - Keila - 600 - EE ) SELECT * FROM `table` WHERE `lang`= <язык>(ru/ee) Любит народ изобретать велосипед однако
  • 0

#11 PressSetter

PressSetter

    Крестный Папочка

  • Постоялец
  • 2 323 сообщений
  • Откуда:Таллинн

Отправлено 08 октября 2008 - 21:36

Или я тупой или лыжи не едут)))) Мне уже смешно...
Я говорю.
Р - русский
Э - эстонец.

Заходит Э на сайт, жмет добавить сообщение, добавляет в таблицу Бейз новый товар. В таблицу поступают след. данные.

Название Местонахождение Цена
Kleit keila 600.-

Отлично!

Заходит Р, жмет добавить сообщение, добавляет в таблицу Бейз новый товар. В таблицу поступают след. данные.

Куртка таллиннн 350.-

А тепер к примеру: Заходи потенциальный КЛИЕНТ РУССКИЙ жмет показать объявления и видит такую лажу.

Куртка таллиннн 350.-
Kleit keila 600.-

Эмоции: Че за фигня? Почему на разных языках?
А ДОЛЖЕН получить:

Куртка таллиннн 350.-
Платье кеила 600.-


Теперь думаю понятно?
  • 0

#12 Ken0-

Ken0-
  • Пользователь
  • 53 сообщений

Отправлено 08 октября 2008 - 23:14

Это ты всем мозги запудрил... что бы так делалось тебе нужно либо автоматом переводить с эстонского на русский и наоборот(что я думаю вряд ли возможно ) ... другой способ это как появилась новая запись то ты САМ добавляешь ту же запись только на другом языке ...!!! это ПЕРЕВОД СООБЩЕНИЯ а не что то с программированием ...
  • 0
Если в слове ХЛЕБ сделать 4 ошибки получиться ПИВО, а если сделать 5 ошибок ... получиться ВОДКА.!!!

#13 еть.

еть.
  • Постоялец
  • 2 655 сообщений

Отправлено 08 октября 2008 - 23:31

Да, я б тоже хотел - засовываешь в микроволновку попкорн, а вытаскиваешь стейк с картошечкой.
  • 0

– Совсем худо, – заключил хозяин, – что-то, воля ваша, недоброе таится в мужчинах, избегающих вина, игр, общества прелестных женщин, застольной беседы. Такие люди или тяжко больны, или втайне ненавидят окружающих.


#14 Setor

Setor
  • Постоялец
  • 1 890 сообщений
  • Откуда:Эстония, Таллин

Отправлено 09 октября 2008 - 09:01

Это ты всем мозги запудрил... что бы так делалось тебе нужно либо автоматом переводить с эстонского на русский и наоборот(что я думаю вряд ли возможно ) ... другой способ это как появилась новая запись то ты САМ добавляешь ту же запись только на другом языке ...!!! это ПЕРЕВОД СООБЩЕНИЯ а не что то с программированием ...

+1

тут нужен оператор - толмач переводчик :) Компьютер с такой задачей не справится. Но архитектура с 2мя таблицами всё равно неверна ;)
  • 0

#15 BMplanet

BMplanet
  • Пользователь
  • 26 сообщений

Отправлено 09 октября 2008 - 13:11

+1

тут нужен оператор - толмач переводчик :) Компьютер с такой задачей не справится. Но архитектура с 2мя таблицами всё равно неверна ;)


Полностью согласен , тут либо сам ,либо оператора посади. А на аппартном уровне ты этого не сделаешь , технологии ещё не дошли, вот как придёт к нам в Эстонию ИИ, тогда уж=)). Можно конечно сделать небольшой двиг-переводчик , который проверял бы по своим словарям , и заменял слово kleit на платье и т.д. Но это слишком громоздко,неудобно и вообще толку от такой системы мало.

Сообщение изменено: BMplanet (09 октября 2008 - 13:12 )

  • 0

#16 .NET

.NET
  • Постоялец
  • 3 511 сообщений

Отправлено 09 октября 2008 - 15:46

AgentVlad, Как всё тяжело. Страницу на двух языках сделать нелья чтоли(хотя, как по другому-то собственно ) ? Когда сделаешь - просто добавь скрытое поле в форму <input type="hidden" name="lang" value="<?=$lang;?>">, где $lang - это текущий язык, и при посте просто добавь это значение в таблицу; на вывод тоже самое: SELECT * FROM table WHERE lang='$lang';
  • 0

#17 ParadoxL

ParadoxL
  • Постоялец
  • 5 023 сообщений
  • Откуда:Edinburg

Отправлено 09 октября 2008 - 21:34

Доводилось сталкиваться с подобной задачкой ... правда порядком сложнее. Вот одна идейка для тебя ... надеюсь моск не сломаешь :D

1. Используешь одну таблицу для объявлений.
2. Так как в объявлениях используются максимально приближенные по написанию аббревиатуры и слова. То создаешь таблицу соответствий ... где данные есть ничто как пары [слово : sõna] ... конечно с правильной индексацией и так далее...
3. Ваяешь или используешь какой-нить готовый fuzzy logic или exact searching алгоритм. Задача которого сводится к возможности сравнения двух слов (фраз) с учетом погрешности на опечатку /пропуск символа/замены символа/присутвия/отсутвия лишнего....
4. Работает это всё так ...
- Юзер воодит в форме запрос на родном языке ...
- Ты создаешь аналогичный запрос используя (3) но уже на другом языке ...
- Убираешь дубликаты.
- И опять-таки используя (3) трасформируешь всё в понятный пользователю язык.
- Параллельно ... система должна накапливать знания о словах ... которые не смогла идентифицировать. То есть пишет в отдельную таблицу для дальнейшего перевода этих слов оператором и занесения их в базу данных. Через месяц обучения система может сама работать.

ЗЫ! Я писал свой анализатор сам ... за основу был взят алгоритм Битапа (shift-or) ... фишка была в том, что я хранил данные соответвий не как слова, а как промежуточные вектора из "1" и "0". То есть таблица соответвий была из двух полей [long:long] ... причем они были проиндексированы и сгрупированы, а таблица в свою очередь была разбита на партиции (partitioned indexes) ... что в итоге довало не детскую производительность ... даже на 80486DX4 100 Mhz.

Есть еще второй вариант ... сети Петри. Но там больше времени уйдет на проработку идеи и реализацию.
  • 0
Victoria nulla est, Quam quae confessos animo quoque subjugat hostes ...
Верю в смерть после жизни, любовь после секса и в крем после бритья ...

#18 PressSetter

PressSetter

    Крестный Папочка

  • Постоялец
  • 2 323 сообщений
  • Откуда:Таллинн

Отправлено 09 октября 2008 - 23:57

Народ, епрст... Я не прошу мой случай разбирать, я хочу спросить правильного решения у вас этой проблемы.

У меня имеется таблица.

Название Местонахождение Цена
Куртка таллиннн 350.-
Kleit keila 600.-


Рассмотрим как вариант:
Возможно заменить их значениями(цыфрами), которым придать после извлечения из базы какие-то определенные значения:

Название Местонахождение Цена
1 2 350.-
3 4 600

$1 = "Jope";
$3 = "Kleit";
$2 ="Tallinn";
$4 ="Keila";

<?php print "$1'';> <?php print "$2';> 350
<?php print "$3'';> <?php print "$4'';> 600


Для русского сайта эти значения просто надо поменять на русский и и указать считывающий файл значений уже с русскими значениями. НО....

когда мы делаем запрос, по которому просим достать из даблицы все значения, они идут в двойных скобках и там уже ПХП код не прописать, поэтому не знаю как задать переменным (числам из базы) определенные значения.


$db = new CustomSQL($DBName);
$result = mysql_query("SELECT * FROM les");
if (!$result)
{
echo "<P> Запрос на выборку не прошел. Обратитесь с этой проблемой к администратору! </P> <br> <strong> Код ошибки </strong>";
exit(mysql_error());
}
if (mysql_num_rows($result) > 0)
{
$myrow = mysql_fetch_array($result);do 
{
printf ("<table align='left' class='lesson'>
		 
		 <tr>
		 <td><div align='left'>
		 <p class='lesson_title'><a href='view_msg.php?id=%s'>$%s %s  %s  </a></p>
		 <p class='lesson_adds'>Местонахождение: %s</p>
		 <p class='lesson_adds'><a href='add_photos.php?id=%s'>Добавить фотографии.</a></p>
		 <p class='view_date'>Дата добавления: %s</p>
		 <p class='lesson_name'>Цена: <b>%s</b></p>
		 </div></td>
		 </tr>
		 
		 <tr>
		 <td></td>
		 </tr>
		 
		 </table><br><br>",$myrow["id"], $myrow["mak"], $myrow["mud"], $myrow["yer"], $myrow["city"], $myrow["id"], $myrow["dat"], $myrow["pre"]);
}
while ($myrow = mysql_fetch_array($result));
}
else
{
echo "<P>Информация по запросу не может быть извлечена - в таблице не ваших обявлений!</P>";
}
?>

Или мож кто знает форум программистов? Заранее благодарен.

Сообщение изменено: AgentVlad (09 октября 2008 - 23:56 )

  • 0

#19 Setor

Setor
  • Постоялец
  • 1 890 сообщений
  • Откуда:Эстония, Таллин

Отправлено 10 октября 2008 - 09:49

AgentVlad, ты хочешь, чтобы за тебя всё написали? Задача сложная, а твой детский пример кода (к чему он вообще?) и рядом с ней не стоит. Тебе нужен не форум программистов, а губозакатывалка. Не надо браться за работу, которую не можешь сам выполнить.

Либо делай как на auto24/city24/kv - выбираешь товар из списка, который хочешь продать, например, платье и всё. Никакого разума системе не надо.
  • 0

#20 PressSetter

PressSetter

    Крестный Папочка

  • Постоялец
  • 2 323 сообщений
  • Откуда:Таллинн

Отправлено 10 октября 2008 - 09:57

AgentVlad, ты хочешь, чтобы за тебя всё написали? Задача сложная, а твой детский пример кода (к чему он вообще?) и рядом с ней не стоит. Тебе нужен не форум программистов, а губозакатывалка. Не надо браться за работу, которую не можешь сам выполнить.

Либо делай как на auto24/city24/kv - выбираешь товар из списка, который хочешь продать, например, платье и всё. Никакого разума системе не надо.



Мда, ты вообще не по теме отвечаешь, если не понимаешь проходи мимо и не пудри мозги.
Я у народа спрашиваю как правильно сделать, а не писать мне тут коды.

Ты даже не знаешь как работают ауто сити и кв. , че тогда примеры приводишь?
  • 0

#21 Setor

Setor
  • Постоялец
  • 1 890 сообщений
  • Откуда:Эстония, Таллин

Отправлено 10 октября 2008 - 10:26

Мда, ты вообще не по теме отвечаешь, если не понимаешь проходи мимо и не пудри мозги.
Я у народа спрашиваю как правильно сделать, а не писать мне тут коды.

Ты даже не знаешь как работают ауто сити и кв. , че тогда примеры приводишь?

Это ты запудрил всем мозги, Incubo подсказал как правильно сделать то, что ты хочешь. Если ты всё ещё хочешь это делать, то флаг тебе в руки :)

Я очень хорошо знаю как работают эти сайты, т.к. проводил их анализ ;)

P.S. а ты видел сайт, который сам переводил объявления? Наверное, не видел... а почему? потому, что ни кто не берётся за такой геморрой, чаще всего они просто предлагают чётко заданный список опций.
  • 0

#22 PressSetter

PressSetter

    Крестный Папочка

  • Постоялец
  • 2 323 сообщений
  • Откуда:Таллинн

Отправлено 11 октября 2008 - 15:56

Setor, у тебя сплошное пустозвонство, чего больше всего есть. Не знаешь, не лезь, эта проблема намного проще разрешается.
Я просил помочь программистов, а не тех, кто услышал звон, не знаю где он.
  • 0