Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2012, 12:52   #1
umitru
Новичок
Джуниор
 
Регистрация: 18.01.2012
Сообщений: 1
По умолчанию Форма из checkbox для поиска, но поиск проходит по одному выброному значению...

Создал фильтр товара, но фильтрация происходит только по одному введённому значению, а необходимо, чтобы по нескольким выбранным значениям.

Сейчас поиск происходит: Тип одежды: Куртка; Размер XXL. находит либо куртку, либо по размеру, но не находит совместный вариант. Куртка XXL,
или выбираю пункт Майка, размер XXL, а в результате получаю только все товары с размером XXL.

Подскажите пожалуйста, что сделал не так? Как сделать правильно ? Очень прошу великих гуру помочь полнейшему нубу.

Код формы поиска:

<?php
if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
if( file_exists(dirname(__FILE__).'/../../components/com_virtuemart/virtuemart_parser.php' )) {
require_once( dirname(__FILE__).'/../../components/com_virtuemart/virtuemart_parser.php' );
} else {
require_once( dirname(__FILE__).'/../components/com_virtuemart/virtuemart_parser.php' );
}
global $VM_LANG, $mm_action_url, $sess;
?>

<form action="<?php $sess->purl( $mm_action_url."index.php?page=shop .browse" )?>" method="post">

<table class="pl-1" border="0" cellspacing="0" cellpadding="0" align="left">
<tbody>
<tr>
<td>
<table style="width: 170px;" border="0" cellspacing="0" cellpadding="0" align="left">
<tbody>
<tr>
<td width="163"><select class="inputbox" type="checkbox" name="keyword" id="keyword" size="1">
<option value=Майка</option>
<option value=Куртка</option>
</select> </td>
</tr>

<tr>
<td><input name="keyword" type="checkbox" value=" XLL" id="keyword" /> 75F</td>
</tr>
<tr>
<td><input name="keyword" type="checkbox" value=" XL" id="keyword" /> XL</td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td align="right"><input class="button" name="Search2" type="submit" value="Найти" /></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</form>

Фрагмент кода отвечающего за поиск

// This is the "normal" search
if( !empty($keywordArr) ) {
$sq = "(";
$numKeywords = count( $keywordArr );
$i = 1;
foreach( $keywordArr as $searchstring ) {
$sq .= "\n (`#__{vm}_product`.`product_name` LIKE '%$searchstring%' OR ";
$sq .= "\n `#__{vm}_product`.`attribute` LIKE '%$searchstring%' OR ";
$sq .= "\n `#__{vm}_product`.`product_s_desc` LIKE '%$searchstring%' OR ";
$sq .= "\n `#__{vm}_product`.`product_desc` LIKE '%$searchstring%') ";

if( $i++ < $numKeywords ) {
$sq .= "\n AND ";
}
}
$sq .= ")";
$where_clause[] = $sq;
}
// Process the advanced search
elseif( !empty($keyword1Arr) ) {
$sq = "(";
$numKeywords = count( $keyword1Arr );
$i = 1;
foreach( $keyword1Arr as $searchstring ) {
switch($search_limiter) {
case "name":
$sq .= "\n `#__{vm}_product`.`product_name` LIKE '%$searchstring%' ";
break;
case "cp":
$sq .= "\n `#__{vm}_product`.`product_url` LIKE '%$searchstring%' ";
break;
case "desc":
$sq .= "\n (`#__{vm}_product`.`product_s_desc` LIKE '%$searchstring%' OR ";
$sq .= "\n `#__{vm}_product`.`attribute` LIKE '%$searchstring%' OR ";
$sq .= "\n `#__{vm}_product`.`product_desc` LIKE '%$searchstring%')";
break;
default:
$sq .= "\n (`#__{vm}_product`.`product_name` LIKE '%$searchstring%' OR ";
$sq .= "\n `#__{vm}_product`.`attribute` LIKE '%$searchstring%' OR ";
$sq .= "\n `#__{vm}_product`.`product_url` LIKE '%$searchstring%' OR ";
$sq .= "\n `#__{vm}_category`.`category_name` LIKE '%$searchstring%' OR ";
$sq .= "\n `#__{vm}_product`.`product_sku` LIKE '%$searchstring%' OR ";
$sq .= "\n `#__{vm}_product`.`product_s_desc` LIKE '%$searchstring%' OR ";
$sq .= "\n `#__{vm}_product`.`product_desc` LIKE '%$searchstring%') ";
}
if( $i++ < $numKeywords ) {
$sq .= "\n AND ";
}
}
$sq .= ") ";
umitru вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Форма поиска - задать диапазон поиска VictorM Microsoft Office Excel 9 21.04.2011 00:12
BDE. 2 разных lookup-поля по одному значению Genco БД в Delphi 9 04.12.2010 01:18
Форма для поиска нужных значений Fezdipekla Microsoft Office Access 1 01.04.2010 19:05
поиск нескольких значений по одному запросу ilgis1 Microsoft Office Word 10 16.09.2009 19:49
Форма для поиска по базе данных Vitec PHP 6 08.10.2007 20:15