X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> очень специфический вывод данных из базы
OlegTitov
OlegTitov
Topic Starter сообщение 25.1.2010, 23:44; Ответить: OlegTitov
Сообщение #1


Привет всем! Я слепил онлайн словарь, но хочу усовершенствовать его. В словарь вносятся английские слова, словосочетания и предлодложения, а также перевод к ним. Например, я вбиваю в строку поиска слово bus, а мне выдает результат I go to my work by bus - Я добираюсь на работу на автобусе. Я хочу сделать что бы слово bus выделялось другим цветом при выводе из базы. И можно ли сделать что бы если ввожу в поисковик несколько слов они выделялись разными цветами. Например введу by bus и выведет так: I go to my work by bus - Я добираюсь на работу на автобусе.
Словарик сделан на php mysql, для поиска использую select LIKE.
У кого есть какие нить идеи?...
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
UncleM
UncleM
сообщение 26.1.2010, 0:00; Ответить: UncleM
Сообщение #2


Это лучше делать не в SQL, а на выводе в PHP.

Вместо
[php]echo $row->phrase;[/php]делайте
[php]echo preg_replace("/(bus)/i","<span style='color:red;'>$1</span>",$row->phrase);[/php]Это лишь пример. Цвета и слова можно поместить в массивы для массовой замены.


--------------------
Осторожно! Вы можете получить огромный заряд позитива!
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
OlegTitov
OlegTitov
Topic Starter сообщение 26.1.2010, 0:47; Ответить: OlegTitov
Сообщение #3


Спасибо за отклик. Я не очень понял как это реализовать. Простите неука. Вот мой код вывода результатов, посмотрите плиз, что добавить нужно
[PHP]<?php

$hostname = "XXX";
$username = "XXX";
$password = "XXX";
$dbName = "XXX";

$table = "terms";
$term = $_POST['term'];
mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");

mysql_select_db($dbName) or die (mysql_error());
mysql_query( 'SET NAMES "cp1251"');

$query = "SELECT * FROM $table WHERE term LIKE '%$term%'";
$result = mysql_query($query);
$term = mysql_result($result, 0, "term");
$description = mysql_result($result, 0, "description");
echo "<p><strong>$term :</strong> $description</p>";
while ($row = mysql_fetch_array($result)) {
echo "<p><strong>".$row ['term']." :</strong> ".$row ['description']."</p>";
}
mysql_close();
?>[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alexdrob
alexdrob
сообщение 26.1.2010, 3:42; Ответить: alexdrob
Сообщение #4


[php]<?php

$hostname = "XXX";
$username = "XXX";
$password = "XXX";
$dbName = "XXX";

$table = "terms";
$term = $_POST['term'];
mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");

mysql_select_db($dbName) or die (mysql_error());
mysql_query( 'SET NAMES "cp1251"');

$query = "SELECT * FROM $table WHERE term LIKE '%$term%'";
$result = mysql_query($query);
$term = mysql_result($result, 0, "term");
$description = mysql_result($result, 0, "description");
$description = preg_replace("/$term/i","<span style='color:red;'>$1</span>",$description);
echo "<p><strong>$term :</strong> $description</p>";
while ($row = mysql_fetch_array($result)) {
echo "<p><strong>".$row ['term']." :</strong> ".preg_replace("/$row[term]/i","<span style='color:red;'>$1</span>",$row ['description'])."</p>";
}
mysql_close();
?> [/php]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
OlegTitov
OlegTitov
Topic Starter сообщение 26.1.2010, 11:07; Ответить: OlegTitov
Сообщение #5


Спасибо alexdrob! Я залил это на сервер, но вообще ничего не изменилось. Вот как выводит (см. вложение)
Если бы как то расчленить на слова то что вводят в поле поиска и придать каждому компоненту разный цвет
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
OlegTitov
OlegTitov
Topic Starter сообщение 26.1.2010, 20:40; Ответить: OlegTitov
Сообщение #6


А уменя вопросик, вот мы здесь пишем переменную $1:
[PHP]".preg_replace("/$row[term]/i","<span style='color:red;'>$1</span>",$row ['description'])."[/PHP]
А до этого нигде ее не задаем... ее не нужно задавать или я ошибаюсь.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
OlegTitov
OlegTitov
Topic Starter сообщение 26.1.2010, 23:18; Ответить: OlegTitov
Сообщение #7


Разобрался:rolleyes:
Но немного нужна помощь. Если в базе есть например, такие слова "drug" и "drug substance", то при вводе слова drug в строку поиска выдает так:

drug substance : лекарственная субстанция

drug : лекарственное средство

Т.е. первый раз встречая слово оно его выделяет, а второй раз нет... плиз хелп!
[PHP]<?php

$hostname = "ХХХ";
$username = "ХХХ";
$password = "ХХХ";
$dbName = "ХХХ";

$table = "terms";
$term = $_POST['term'];
mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");

mysql_select_db($dbName) or die (mysql_error());
mysql_query( 'SET NAMES "cp1251"');

$query = "SELECT * FROM $table WHERE term LIKE '%$term%'";
$result = mysql_query($query);
$beginText = mysql_result($result, 0, "term");
$description = mysql_result($result, 0, "description");
$regime = 0;
if($regime == 1)
{ $patterns = "/(\b".$term."\b)+/i"; }
else
{ $patterns = "/(".$term.")+/i"; }


$replace = "<span style=\"color: #000; background-color: #FC0;\">$1</span>";
$endText = preg_replace($patterns,$replace,$beginText);

echo "<p><strong>$endText :</strong> $description</p>";
$term = mysql_result($result, 0, "term");
while ($row = mysql_fetch_array($result)) {
echo "<p><strong>".$row ['term']." :</strong> ".$row ['description']."</p>";
}
mysql_close();
?>[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Witu
Witu
сообщение 26.1.2010, 23:41; Ответить: Witu
Сообщение #8


при выводе в цикле что то типа такого будет

[php]
str_replace($term, "<span style=\"color: #000; background-color: #FC0;\">$1</span>", $row ['description'])
[/php]

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Большие базы Semrush кейвордов по разным тематикам! Много кейвордов с трафиком и без конкуренции! Volume, KD, CPC
22 Krok 6742 12.4.2024, 5:17
автор: Krok
Открытая тема (нет новых ответов) Базы Youtube кейвордов с данными по конкуренции и Volume
5 Krok 1458 11.4.2024, 5:12
автор: Krok
Открытая тема (нет новых ответов) Интеграция спортивных данных API. Коэффициенты БК, Live результаты
15 yaroslav89 6843 8.4.2024, 17:17
автор: spoyer_ru
Горячая тема (нет новых ответов) Свежие базы ключевых слов с подсказок гугла!
125 Krok 68503 7.4.2024, 4:52
автор: Krok
Открытая тема (нет новых ответов) Базы досок объявлений России, Украины, Беларуси и Казахстана
5 freeax 6458 10.3.2024, 15:07
автор: freeax


 



RSS Текстовая версия Сейчас: 20.4.2024, 1:33
Дизайн