|
|
|
| Всем привет. К сожалению много тем рассматривалось на форуме, но я не нашел для себя нужного. Имеется форма
<form action="view_search.php" method="get" name="form_s">
<span class="search_s">Поисковый запрос должен быть<br> не менее 4-х символов</span>
<br><br>
<span class="search_ss">Поиск по:</span>
<select name="category">
<option value="1">названию</option>
<option value="2">жанру</option>
<option value="3">режиссеру</option>
<option value="4">актерам</option>
<option value="5">дате выхода</option>
<option value="6">формату</option>
<option value="7">качеству</option>
</select>
<br><br>
<input name="search" type="text" size="25" maxlength="40" />
<br>
<input class="search_b" name="submit_s" type="submit" value="Искать" />
</form>
|
В обработчике обязательно получаю такие данные
if (isset($_POST['category'])) { $cat = $_POST['category'];}
if (isset($_POST['submit_s'])) { $submit_s = $_POST['submit_s'];}
if (isset($_POST['search'])) { $search = $_POST['search'];}
|
Имеется такой запрос
$result = mysql_query("SELECT id,title,description,date,author,mini_img,view,rating,q_vote FROM data WHERE MATCH(title) AGAINST('$search')",$db);
|
MATCH(title) - title является в базе
Имя ключа Тип Поле
title FULLTEXT title
|
И теперь вопрос...Как мне выбрав из списка к примеру название и введя в поле текст вывелся результат?
- Переменную $cat записать в массив и потом работать с его елементами? если да - будьте добры примерчик
- уже сразу переменную $cat использовать в запросе? если да - будьте добры примерчик
Благадарю | |
|
|
|
|
|
|
|
для: TetRiska
(22.11.2008 в 01:43)
| | С превеликим удовольствием Вам помогу, если Вы покажете, где же это поле "текст" находится... | |
|
|
|
|
|
|
|
для: Николай2357
(22.11.2008 в 03:15)
| |
<input name="search" type="text" size="25" maxlength="40" />
|
Это и есть поле для ввода текста. В базе ему соответствует поле title
А вот файл обработчик
<? include ("blocks/bd.php");
if (isset($_POST['category'])) { $cat = $_POST['category'];}
if (isset($_POST['submit_s'])) { $submit_s = $_POST['submit_s'];}
if (isset($_POST['search'])) { $search = $_POST['search'];}
if (isset($submit_s))
{
if (empty($search) or strlen($search)<4)
{
exit("<p>Поисковый запрос не введен, либо его длинна менее 4-х символов.</p>");
}
$search = trim($search);
$search = stripslashes($search);
$search = htmlspecialchars($search);
}
else { exit("<p>Вы обратились к файлу без необходимых параметров.</p>"); }
?>
|
И запрос на выборку
$result = mysql_query("SELECT id,title,description,date,author,mini_img,view,rating,q_vote FROM data WHERE MATCH(title) AGAINST('$search')",$db);
|
| |
|
|
|
|
|
|
|
для: TetRiska
(22.11.2008 в 10:47)
| | Ну судя по названию, Вы хотите организовать поиск. Тогда наверное так:
<?
$result = mysql_query("SELECT id,title,description,date,author,mini_img,view,rating,q_vote FROM data WHERE (поле для поиска) LIKE '%".$search."%'",$db);
|
или я неправильно понял, что требуется... | |
|
|
|
|
|
|
|
для: TetRiska
(22.11.2008 в 10:47)
| | Кажется дошло...
Можно переключателем попробовать:
<?
switch($cat)
{
case "1":
$pole = "title";
break;
.
.
.
case "7":
$pole = "rating";
}
| Можно массив разобрать:
<?
$mass = array("1"=>"title", . . . . . "rating");
$pole = $mass[$cat];
| выбирайте. | |
|
|
|
|
|
|
|
для: Николай2357
(22.11.2008 в 15:32)
| | Хмм выбрал я с массивом:
if (isset($_POST['category'])) { $cat = $_POST['category'];}
$mass = array
(
"1"=>'title',
"2"=>'genre',
"3"=>'producer',
"4"=>'actor',
"5"=>'date_s',
"6"=>'format',
"7"=>'quality',
);
$pole = $mass['$cat'];
|
Запрос переделал на такой:
$result = mysql_query("SELECT id,title,description,date,author,mini_img,view,rating,q_vote FROM data WHERE $pole LIKE '%".$search."%'",$db);
|
Делаю поиск по названию и вписую в поле для поиска название фильма, кот. содержится в поле title получаю такой нотис:
Notice: Undefined index: $cat
и
код ошибки:
You have an error in your SQL syntax near 'LIKE '%Wanted%'' at line 1
В чем подвох? | |
|
|
|
|
|
|
|
для: TetRiska
(22.11.2008 в 23:01)
| |
<?
$pole = $mass['$cat'];
| кавычки уберите. | |
|
|
|
|
|
|
|
для: Николай2357
(23.11.2008 в 00:01)
| | Прошу прощения это я натупил)))
вот так нада было
if (isset($_POST['category'])) { $category = $_POST['category'];}
$mass = array
(
"1"=>'title',
"2"=>'genre',
"3"=>'producer',
"4"=>'actor',
"5"=>'date_s',
"6"=>'format',
"7"=>'quality',
);
$pole = $mass[$category];
|
не $cat а $category ))) | |
|
|
|
|
|
|
|
для: TetRiska
(23.11.2008 в 00:13)
| | Тогда уж лучше так:
<?
$category = isset($_POST['category'])?$_POST['category']:null;
|
| |
|
|
|