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



 

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

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

Открыть тему
Тема закрыта
> в продолжении улучшения бд
Space_hb
Space_hb
Topic Starter сообщение 12.4.2008, 15:38; Ответить: Space_hb
Сообщение #1


Здравствуйте! В прошлой теме я задавал вопрос по поводу создания БД, сейчас все получилось, но, возникли опять трудности:

Сделать "умный" поиск

Умный поиск такого рода: у нас есть разные данные в базе, текстовые и числовые, и вот в базе есть запись полного адреса: измайловский пр. д такой -то, квартира такая-то, записано все одной строкой, в таблице вида

--------------------------------------
id | Имя | Телефон | Адрес | Всячина

Как можно вывести таблицу, указав в поиске только например слово измайловский?

А еще н записывать омера телефонов или числовые значения: их же могут по разному: 8 926, 7 926, 8926 и т.д.

Можно ли указав тока часть номера найти полный?

И еще можно ли указав предел чисел (от такого до такого), вывести все, которые попадают под него?

Извините, что заваливаю такими вопросами, но, я думаю, такое у новичков часто возникает, так что всем полезно будет :rolleyes:
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Webmaster_hb
Webmaster_hb
сообщение 12.4.2008, 22:10; Ответить: Webmaster_hb
Сообщение #2


Space, поиск по части слова задается в условии так
address LIKE '%измайлов%'
по поводу диапазона не вижу проблем, если поле у вас числовое, операторы ">" "<"
если же поле текстовое в которое телефон могут записать любым способом - то тут ничем помочь не смогу, прийдется получать список и с помощью PHP его обрабатывать

поэтому совет - лучше данные структурировать при заполнении базы данных, а не при поиске
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Space_hb
Space_hb
Topic Starter сообщение 13.4.2008, 6:44; Ответить: Space_hb
Сообщение #3


спасибо! теперь мучаюсь как же сделать так:

у меня например 20 разных столбцов начиная от id именем и т.д.

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

Так вот я из 20 возможных критериев ищу по 10, т.е. не обязательно их использовать все, можно например имя, адрес и еще что-нибудь, а остальные будут пустые.

И надо тогда только по 3 искать, причем там где списки - поиск точный..

И вот никак не могу скомпоновать запрос так что бы можно было учитывать такую гибкость... уже 6:30, а я спать не могу из-за этого)

Форма типа того:

<head>
</head>
<body>
<form action="test.php" method="post" name="search_form">
<table border="1" cellpadding="0" cellspacing="0">
<tr>
<td colspan="2" align="center">&nbsp;</td>
</tr>
<tr>
<td width="250"><span lang="ru">имя</span>:</td>
<td><input type="text" name="name" maxlength="30" style="width:250px" /></td>
</tr>
<tr>
<td width="250"><span lang="ru">пол</span>:</td>
<td><select name="pol">
<option value="муж">муж</option>
<option value="жен">жен</option>
</select></td>
</tr>
<tr>
<td width="250"><span lang="ru">лет</span>:</td>
<td> <select name="let">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="выше 22">выше 22</option>
</select></td>

</tr>
<tr>
<td width="250"><span lang="ru">еще чушь</span>:</td>
<td><select name="let2">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="больше 22">больше 22</option>
</select></td>

</tr>
<tr>
<td width="250"><span lang="ru">фамилия</span>:</td>
<td><input type="text" name="obpl" style="width:250px" maxlength="30" /></td>

</tr>
<tr>
<td width="250"><span lang="ru">адрес</span>:</td>
<td><input type="text" name="glpl" maxlength="30" style="width:250px" /></td>

</tr>

<tr>
<td colspan="2" align="center">
<input type="submit" class="buttons" value="Отправить запрос" />
<input type="reset" class="buttons" value="Очистить" />
</td>
</tr>
</table>
</form>
</body>
</html>


может кто уже сталкивался с такой задачей?

о! и еще, я тут файл нашел, вроде поиск продвинутый должен быть, но что-то я совсем не понял как он ищет и результаты тоже нифига не поймешь, посмотрите пожалуйста, я пытался переделать под себя - вообще по 0 выдает..
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Webmaster_hb
Webmaster_hb
сообщение 13.4.2008, 10:26; Ответить: Webmaster_hb
Сообщение #4


Space,
делаете текстовую переменную с запросом
[php]
$query = " SELECT * FROM `spisok` WHERE 1";
[/php]
далее проверяетее выбран какой-нибудь параметр в списке или нет, если выбран то добавляете к этому запросу это условие так:
[php]
if ($_POST["let"]) $query.=" AND `let`=".$_POST["let"];
[/php]
и так далее по всем параметрам

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


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Прогон для улучшения позиций по низкой цене
Очень дешево + составление проекта
18 Vangan 5373 20.2.2012, 17:52
автор: Vangan


 



RSS Текстовая версия Сейчас: 19.3.2024, 12:08
Дизайн