|
|
|
| Добрый день. Я пишу сайт с нуля и вручную, поэтому сталкиваюсь со множеством проблем, к том же абсолютный новичок, многих вещей не знаю.
Слёзно прошу помочь кто чем сможет в моей проблеме!!
А она заключается в следующем: создают поиск по сайту (точнее- по базе данных где хранятся товары). То есть есть строка, в которую пользователь вводит свои слова поиска, есть несколько чекбоксов (указание где именно искать его слова) и кнопка "искать" соответственно. Я предположила, что слова поиска, вводимые пользователем, надо записывать в отдельную таблицу. И тогда получается следующее: с нажатием кнопки "искать" записываются поисковые слова в базу данных, оттуда выводятся на страницу как "Вы искали...." и далее ниже- все совпадения из базы данных. Но как не бьюсь- что-то не выходит. Пожалуйста, люди добрые, помогите!! Подскажите почему код не работает или что в нём не так, а может что-то можно сделать проще и иначе?
Вот код моей страницы:
<body>
<?php
$database = "gb";
$host = "localhost";
$username = "root";
$db=mysql_connect($host,$username,$password);
$sql="SELECT wwod FROM poisk order by id desc";
$result=mysql_db_query($database,$sql,$db);
?>
<?
$error = "";
$action = $_POST["action"];
if (!empty($action))
{
$wwod = trim($_POST["wwod"]);
if (empty($wwod))
{
$action = "";
$error = $error."Вы не ввели слова для поиска\n";
}
if (empty($error))
{
mysql_query("insert into gst (wwod) values ('$wwod', NOW())");
print "<HTML><HEAD>\n";
print "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=gaz-index.php'>\n";
print "</HEAD></HTML>\n";
}
}
?>
<table width="100%" border="1">
<tr>
<td colspan="2"><p>Здесь типа как шапка</p>
<p align="right">поиск
<form method="post" action="gaz-index.php">
<fieldset>
<legend>Наберите, пожалуйста, ключевые слова для поиска </legend>
<input type=text name=name maxlength=100 size=100 value='<? echo $myrow['wwod']; ?>'>
<p></p>
</fieldset>
<fieldset>
<legend>Ключевые слова искать в:</legend>
<input type="checkbox" name="loc[]" value="1" id="fun"/>Функциях
<input type="checkbox" name="loc[]" value="2" id="nazw"/>Названиях
<input type="checkbox" name="loc[]" value="3" id="mod"/>Модулях
<input type="checkbox" name="loc[]" value="4" id="prog"/>Программном обеспечении
<input type="checkbox" name="loc[]" value="5" id="wezde" />Везде </fieldset>
<input type="submit" value="Найти" />
</fieldset>
</form>
<?
if (!empty($error))
{
print "<P><font color=green>Во время ввода ключевых слов произошли следующие ошибки: </font></P>\n";
print "<UL>\n";
print $error;
print "</UL>\n";
}
?>
</p>
</td>
</tr>
<tr>
<td width="20%"><ul>
<li> <a href="ob_deyatelnisti.php">Область деятельности</a></li>
<li><a href="produkciya.php">Продукция и услуги</a></li>
<li><a href="nomenklat.php">Номенклатура</a></li>
<li><a href="publikaci.php">Раздел публикаций</a> </li>
<li><a href="o_kompani.php">О компании </a></li>
<li><a href="kantakti.php">Контакты </a></li>
</td>
<td><p>Весь текст и тд</p>
<?php
while ( $myrow = mysql_fetch_array($result) ) {
?>
<table width="20%" border="3">
<tr>
<td width="10%"><b><? echo $myrow['wwod']?></b></td>
</tr>
</table>
<?php
}
?>
</td>
</tr>
|
| |
|
|
|
|
|
|
|
для: Blondy
(12.04.2010 в 16:11)
| | по поводу функции mysql_db_query(), цитата из руководства
Замечание: Функция устарела с выходом PHP 4.0.6. Не используйте её. Используйте комбинацию из mysql_select_db() м mysql_query().
| |
|
|
|
|
|
|
|
для: Slo_Nik
(12.04.2010 в 21:08)
| | Спасибо большое что предупредили)
но к сожалению от этого моя проблема не исчезла.
Подскажите пожалуйста, как решить мою задачу может быть другим способом или как переделать этот код? | |
|
|
|
|
|
|
|
для: Blondy
(13.04.2010 в 18:29)
| | Вашу тему вообще можно назвать так - "странно, что речь идет о поиске".
В вашем коде даже и не пахнет поиском, так что лучше опишите чего вы хотите - вы пытаетесь найти, или вы не можете создать историю запрашиваемых слов? Зачем их вообще записывать в вашем случае? | |
|
|
|
|
|
|
|
для: sim5
(13.04.2010 в 18:38)
| | Мне товарищ сказал что надо записывать историю запрашиваемых слов.
Мне нужно сделать поиск по сайту, его бд. Собственно есть поле, куда пользователь вводит слова для поиска. Ниже- чекбоксы в каких таблицах искать. И кнопка "искать", нажав на которую страница обновляется и должны выводится результаты поиска. Вот я и не знаю что и как нужно для этого сделать в подробностях. | |
|
|
|
|
|
|
|
для: Blondy
(13.04.2010 в 19:48)
| | >Мне товарищ сказал что надо записывать историю запрашиваемых слов.
а для чего, не сказал? | |
|
|
|
|
|
|
|
для: Slo_Nik
(13.04.2010 в 20:44)
| | >а для чего, не сказал?
какая разница.
В этом есть что-то странное?
Другое дело, что именно скзал записывать товарищ.
Если историю поисковых запросов, это одно. Тогда всё похоже.
Если историю именно запрашиваемых слов, то запросы надо на слова разбивать.
И уже слова эти писать отдельно. | |
|
|
|
|
|
|
|
для: Trianon
(13.04.2010 в 20:52)
| | Сказал что слова надо записывать в базу данных для того, чтобы потом по ним же искать во всей моей базе данных. То есть сравнивать записи.
Принцип как я поняла такой: пользователь вводит слова поиска, нажимает "поиск". После этого его слова поиска записываются в бд, и эти данные данные из поля таблицы уже сравниваются со всеми данными из всей бд сайта. | |
|
|
|
|
|
|
|
для: Blondy
(13.04.2010 в 21:21)
| | пользователь вводит поисковый запрос - строку символов.
PHP-скрипт-обработчик эту строку принимает, разбивает на отдельные слова, заносит запрос в БД.
Я бы вел две таблицы запросов и слов - в одну добавлял по записи на каждый запрос, в другую столько записей, сколько слов в запросе. Возможно (если есть такая необходимость) в запись первой таблицы помещал информацию, позволяющую восстановить исходный вид запроса, помимо тех элементов, которые требуется хранить так или иначе. | |
|
|
|