Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

вопросы по php

Автор do50, сентября 15, 2011, 21:04

0 Пользователи и 1 гость просматривают эту тему.

do50

Цитата: RawonaM от сентября 17, 2011, 10:49
А зачем? Что-то я не понял задачи.
в словаре есть поиск по слову и поиск по первой букве, т.е. нажимая на букву выдаётся список слов, начинающихся на эту букву. нажимаем А - выдаёт список:
a
am
anois
áiléar
а должно быть:
a
áiléar
am
anois
буквы с акутом должны быть равны буквам без него
Проблемы интеграции России в ад должны волновать ад, а не Россию

«Россия управляется непосредственно Господом Богом. Иначе невозможно представить, как это государство до сих пор существует», Генерал-фельдмаршал Х. А. Миних
«Россией управлять не сложно, но совершенно бесполезно», Александр II

RawonaM

А, это нужно изменить коллацию таблицы и может еще чего-то на аццент-инсенситиве.
Там вариантов может быть уйма и это вообще может оказаться не так просто. Не любой сервер будет это поддерживать.

Можно пойти несколько окольным путем и пересортировать готовый результат уже в PHP, если там не миллионы строк.

rlode

Цитата: do50 от сентября 17, 2011, 10:57
Цитата: RawonaM от сентября 17, 2011, 10:49
А зачем? Что-то я не понял задачи.
в словаре есть поиск по слову и поиск по первой букве, т.е. нажимая на букву выдаётся список слов, начинающихся на эту букву. нажимаем А - выдаёт список:
a
am
anois
áiléar
а должно быть:
a
áiléar
am
anois
буквы с акутом должны быть равны буквам без него
тут решений может быть много, RawonaM прав - все зависит от размеров базы. Самое топорное решение - иметь в базе дополнительную колонку, где писать то же слово, но без диакритики и при поиске выбирать строки по ней. Можно попробовать регулярными выражениями...

rlode

Цитата: do50 от сентября 17, 2011, 10:17
ввод символов в форму реализовал так:
Цитировать
                 <INPUT TYPE=button VALUE="á" onClick="document.getword.elements[0].value='á';">
                 <INPUT TYPE=button VALUE="é" onClick="document.getword.elements[0].value='é';">
                 <INPUT TYPE=button VALUE="í" onClick="document.getword.elements[0].value='í';">
                 <INPUT TYPE=button VALUE="ó" onClick="document.getword.elements[0].value='ó';">
                 <INPUT TYPE=button VALUE="ú" onClick="document.getword.elements[0].value='ú';">
сейчас столкнулся с такой проблемой, клик на кнопку стирает всё, что было написано в форме до него и вводит соответствующий символ. как это побороть?
Можно то же самое на jQuery реализовать. Для такой простой задачи можно на чистом javascript писать, но для более сложных задач удобнее jQuery

do50

Цитата: rlode от сентября 17, 2011, 12:02
Можно то же самое на jQuery реализовать. Для такой простой задачи можно на чистом javascript писать, но для более сложных задач удобнее jQuery
это как?
Проблемы интеграции России в ад должны волновать ад, а не Россию

«Россия управляется непосредственно Господом Богом. Иначе невозможно представить, как это государство до сих пор существует», Генерал-фельдмаршал Х. А. Миних
«Россией управлять не сложно, но совершенно бесполезно», Александр II

do50

Цитата: rlode от сентября 17, 2011, 11:59
Самое топорное решение - иметь в базе дополнительную колонку, где писать то же слово, но без диакритики и при поиске выбирать строки по ней.
а как это реализовать практически?
Проблемы интеграции России в ад должны волновать ад, а не Россию

«Россия управляется непосредственно Господом Богом. Иначе невозможно представить, как это государство до сих пор существует», Генерал-фельдмаршал Х. А. Миних
«Россией управлять не сложно, но совершенно бесполезно», Александр II

jvarg

Цитата: do50 от сентября 17, 2011, 10:17
Цитата: jvarg от сентября 17, 2011, 07:19Наверное, вы имели в виду "php.ini"?

такого нет, а как с его помощью можно это сделать?

http://www.avege.ru/russian/php_5/php_04.shtml


Цитата: do50 от сентября 17, 2011, 10:39
урааа! заработало!!!
RawonaM, спасибо! осталось ещё заставить БД думать

База данных думать не умеет. Попробуйте сами  :) :)
Все боятся быть обвинёнными в ксенофобии. А вот в русофобии никто.
(© Захар Прилепин)

do50

Цитата: jvarg от сентября 17, 2011, 12:28
База данных думать не умеет. Попробуйте сами
дельный совет, спасибо!
Проблемы интеграции России в ад должны волновать ад, а не Россию

«Россия управляется непосредственно Господом Богом. Иначе невозможно представить, как это государство до сих пор существует», Генерал-фельдмаршал Х. А. Миних
«Россией управлять не сложно, но совершенно бесполезно», Александр II

do50

Проблемы интеграции России в ад должны волновать ад, а не Россию

«Россия управляется непосредственно Господом Богом. Иначе невозможно представить, как это государство до сих пор существует», Генерал-фельдмаршал Х. А. Миних
«Россией управлять не сложно, но совершенно бесполезно», Александр II

RawonaM

Цитата: do50 от сентября 17, 2011, 12:19
Цитата: rlode от сентября 17, 2011, 11:59Самое топорное решение - иметь в базе дополнительную колонку, где писать то же слово, но без диакритики и при поиске выбирать строки по ней.
а как это реализовать практически?
Создаете еще одно поле в таблице, копируете в нее все слова, изменяете в ней все акцентированные буквы на простые. Затем когда делаете выборку (select) в условии (where) используете новое поле.

jvarg

Все боятся быть обвинёнными в ксенофобии. А вот в русофобии никто.
(© Захар Прилепин)

rlode

Цитата: rlode от сентября 17, 2011, 12:02
Цитата: do50 от сентября 17, 2011, 10:17
ввод символов в форму реализовал так:
Цитировать
                 <INPUT TYPE=button VALUE="á" onClick="document.getword.elements[0].value='á';">
                 <INPUT TYPE=button VALUE="é" onClick="document.getword.elements[0].value='é';">
                 <INPUT TYPE=button VALUE="í" onClick="document.getword.elements[0].value='í';">
                 <INPUT TYPE=button VALUE="ó" onClick="document.getword.elements[0].value='ó';">
                 <INPUT TYPE=button VALUE="ú" onClick="document.getword.elements[0].value='ú';">
сейчас столкнулся с такой проблемой, клик на кнопку стирает всё, что было написано в форме до него и вводит соответствующий символ. как это побороть?
Можно то же самое на jQuery реализовать. Для такой простой задачи можно на чистом javascript писать, но для более сложных задач удобнее jQuery
можете здесь читнуть: http://black-zorro.com/mediawiki/Часть_первая_про_jquery

do50

это код того самого словаря, сейчас проблема такая: вводя слово из одной буквы выдаётся весь список слов на эту букву, как сделать, чтобы выводилась только статья соответствующая данной букве и желательно с учётом регистра 

Цитировать
$configfile = "config.php";
require $configfile;
$db = mysql_connect("$host", "$username", "$password");
mysql_select_db("$databasename", $db);
if($word)
{
$getWord=mysql_query("SELECT word,definition FROM mdglossary WHERE word LIKE '%$word%' ORDER BY word", $db);

if($getWordArray=mysql_fetch_array($getWord))
{
echo "Here are the results for $word<br><dl>";
do
{
echo "<br><dt><b>";
printf($getWordArray["word"]);
echo "</b></dt><dd>";
printf($getWordArray["definition"]);
echo "</dd>";
}
while($getWordArray=mysql_fetch_array($getWord));
echo "</dl>";
}
else
{
echo "Sorry there are no matches for $word";
}
}
if($letter)
{
if($letter=="number")
{
$getWord=mysql_query("SELECT word,definition FROM mdglossary WHERE word LIKE '0%' OR word LIKE '1%' OR word LIKE '2%' OR word LIKE '3%' OR word LIKE '4%' OR word LIKE '5%' OR word LIKE '6%' OR word LIKE '7%' OR word LIKE '8%' OR word LIKE '9%' ORDER BY word", $db);
}
else
{
$getWord=mysql_query("SELECT word,definition FROM mdglossary WHERE word LIKE '$letter%' ORDER BY word", $db);
}

if($getWordArray=mysql_fetch_array($getWord))
{
echo "Here are the results for the letter <b>$letter</b><br><dl>";
do
{
echo "<br><dt><b>";
printf($getWordArray["word"]);
echo "</b></dt><dd>";
printf($getWordArray["definition"]);
echo "</dd>";
}
while($getWordArray=mysql_fetch_array($getWord));
echo "</dl>";
}
else
{
echo "Sorry, there are currently no words under <b>$letter</b>";
}
}
if(!$word&&!$letter)
{
/*echo "Welcome to the glossary!<br>";*/
}
if($word||$letter)
{
echo "<HR>";
}
/*echo "You can either type in the word you are looking for in the box below or browse by letter<br><br>";*/
?>

<a href="http://dic.gaeilge.ru/"><img src="http://dic.gaeilge.ru/img/home.png"/></a>

<?php
echo "<br><br><br>";
echo "Поиск<br>";
echo "<form name=\"getword\" action=\"index.php\" method=\"get\"><input name=\"word\" type=\"text\" value=\"\"> <input type=\"submit\" value=\"Cuardaigh\"></form>";
?>

Проблемы интеграции России в ад должны волновать ад, а не Россию

«Россия управляется непосредственно Господом Богом. Иначе невозможно представить, как это государство до сих пор существует», Генерал-фельдмаршал Х. А. Миних
«Россией управлять не сложно, но совершенно бесполезно», Александр II

RawonaM

Цитата: do50 от сентября 17, 2011, 22:17
{
$getWord=mysql_query("SELECT word,definition FROM mdglossary WHERE word LIKE '$letter%' ORDER BY word", $db);
}
Нужно убрать %, тогда только одну букву будет искать. А чтобы было регистрозависимо, то нужно регистрозависимую коллацию установить в базе данных.

П.С. Что же у вас отступов нет совсем, ничего ж непонятно...

do50

Цитата: RawonaM от сентября 17, 2011, 22:26
П.С. Что же у вас отступов нет совсем, ничего ж непонятно...

спасибо!
я только учусь, понадёргал из разных скриптов, что то сам по книжкам писал, так что ещё не научился нормально оформлять...


не помогло!:(
Проблемы интеграции России в ад должны волновать ад, а не Россию

«Россия управляется непосредственно Господом Богом. Иначе невозможно представить, как это государство до сих пор существует», Генерал-фельдмаршал Х. А. Миних
«Россией управлять не сложно, но совершенно бесполезно», Александр II

do50

Цитата: RawonaM от сентября 17, 2011, 22:26
регистрозависимую коллацию установить в базе данных.
:o это почти матом :D
Проблемы интеграции России в ад должны волновать ад, а не Россию

«Россия управляется непосредственно Господом Богом. Иначе невозможно представить, как это государство до сих пор существует», Генерал-фельдмаршал Х. А. Миних
«Россией управлять не сложно, но совершенно бесполезно», Александр II

RawonaM

Цитата: do50 от сентября 17, 2011, 22:30
не помогло!:(
Как не помогло?! Значит вероятно вы не получаете $letter. Из кода непонятно, какие переменные в каких случаях приходят. Вставьте в добавок перед строкой "if($word)" следущее:
if ($word && strlen($word)==1)
{
    $letter = $word;
    $word = '';
}

arseniiv

Offtop
Выражаю скепсис по отношению к успешности того, что получится из этого проекта.

RawonaM

А, подождите, я не так прочитал что вам надо. Дайте еще раз посмотрю.
Вы хотите чтобы если слово из одной буквы, то выдавало только его, да? А если две буквы вводят? Три? Как вообще у вас задумано?

do50

вот теперь работает!
приогромное спасибо!!!
Проблемы интеграции России в ад должны волновать ад, а не Россию

«Россия управляется непосредственно Господом Богом. Иначе невозможно представить, как это государство до сих пор существует», Генерал-фельдмаршал Х. А. Миних
«Россией управлять не сложно, но совершенно бесполезно», Александр II

do50

Цитата: RawonaM от сентября 17, 2011, 22:55
А, подождите, я не так прочитал что вам надо. Дайте еще раз посмотрю.
Вы хотите чтобы если слово из одной буквы, то выдавало только его, да? А если две буквы вводят? Три? Как вообще у вас задумано?
всё правильно вы поняли, и теперь всё работает как надо, слово из одной буквы выводится в отдельной статьёй, а не списком из всех слов начинающихся с этой буквы.

ещё раз спасибо
Проблемы интеграции России в ад должны волновать ад, а не Россию

«Россия управляется непосредственно Господом Богом. Иначе невозможно представить, как это государство до сих пор существует», Генерал-фельдмаршал Х. А. Миних
«Россией управлять не сложно, но совершенно бесполезно», Александр II

do50

Цитата: arseniiv от сентября 17, 2011, 22:54
Offtop
Выражаю скепсис по отношению к успешности того, что получится из этого проекта.

спасибо за поддержку!
Проблемы интеграции России в ад должны волновать ад, а не Россию

«Россия управляется непосредственно Господом Богом. Иначе невозможно представить, как это государство до сих пор существует», Генерал-фельдмаршал Х. А. Миних
«Россией управлять не сложно, но совершенно бесполезно», Александр II

do50

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

«Россия управляется непосредственно Господом Богом. Иначе невозможно представить, как это государство до сих пор существует», Генерал-фельдмаршал Х. А. Миних
«Россией управлять не сложно, но совершенно бесполезно», Александр II

RawonaM


do50

Проблемы интеграции России в ад должны волновать ад, а не Россию

«Россия управляется непосредственно Господом Богом. Иначе невозможно представить, как это государство до сих пор существует», Генерал-фельдмаршал Х. А. Миних
«Россией управлять не сложно, но совершенно бесполезно», Александр II

Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр