Привет всем,пожалуста помогите,очен срочно нужен скриптик расширенного поиска по категориям.Спасибо заранее всем кто отпишется. Пример скрипта можете посмотрет на http://www.be-in.ru/search .Нужен такойже( . Я из базы данных должен вывести тип , виды s chechkboxom ,пол s chechkboxom и т.д. например баз данных такой : 1.Tovar id name tip_id sort_id pol_id 2.Pol: id name 3.Sort id name Teper po otdelnosti poluchaetsyai resultat...naprimer esli ya napishu kod vivesti vse tovari gde kakoyto Pol.id vibran a kak vizvat odnovremenno? Esli vibran i Pol i Sort. Ya v prinsipe napisal kod s While-mi...kod ochen bolshoy... 100% est kakoyto prostoy sposob,,,mne stidno daje pokazat takoy kod) no rabotaet... Буду очен признателен тому кто поможет мне.Код нужен на завтра;(( .Всем удачи
делаем запрос к базе: [sql]select tov.id tov.name as tovar_name tov.tip_id tov.sort_id tov.pol_id p.name as pol_name t.name as tip_name, s.name as sort_name from tovar tov join pol p on p.id=tov.pol_id join sort s on s.id=tov.sort_id join tip t on t.id=tov.tip_id [/sql] затем блин ты хочешь, чтоб тебе готовый скрипт написали?
болшое спсшто отписалис.мне б толко 1 пример показали б например : если клиент выбрал пол и тип - как сделат выборку с помошю chechkbox-ов? если толко 1 пример будет я самдоделаю.пожалусто это очень важно
можно я тебе пошлю свой сгл и код?там работает если выбрат и пол и сорт,а если не выбрат пол то не работает.можеш посмотрет?
Ну для примера держи рабочий скрипт: PHP: <html> <body> <?php if (isset($_POST['btnSearch']) ) { ?> Пользователь натыкал: <br/> <div class="fast_search_title"><strong><big>Город:</big></strong></div> <?php if (isset($_POST['search_city'])) foreach($_POST['search_city'] as $city) echo($city . ' '); ?> <div class="fast_search_title"><strong><big>Тип одежды:</big></strong></div> <?php if (isset($_POST['search_type'])) foreach($_POST['search_type'] as $city) echo($city . ' '); ?> <div class="fast_search_title"><strong><big>Пол:</big></strong></div> <?php if (isset($_POST['search_sex'])) foreach($_POST['search_sex'] as $city) echo($city . ' '); ?> <div class="fast_search_title"><strong><big>Цена:</big></strong></div> <?php if (isset($_POST['search_place'])) foreach($_POST['search_place'] as $city) echo($city . ' '); ?> <div class="fast_search_title"><strong><big>Продается:</big></strong></div> <?php } else { ?> <form name="fast_search_form" method="POST"> <div class="fast_search_title"><strong><big>Город:</big></strong></div> <div class="clear"></div> <label><input type="checkbox" name="search_city[]" id="city_0" value="102" >Москва</label> <label><input type="checkbox" name="search_city[]" id="city_1" value="101" >Петербург</label> <div class="clear"></div> <div class="fast_search_title"><strong><big>Тип одежды:</big></strong></div> <div class="clear"></div> <p><br/>УЛИЦА:</p> <label><input type="checkbox" name="search_type[]" id="type_0" value="15" >Дубленки</label> <label><input type="checkbox" name="search_type[]" id="type_1" value="13" >Куртки</label> <label><input type="checkbox" name="search_type[]" id="type_2" value="11" >Пальто</label> <div class="clear"></div> <p><br/>ВЕРХ:</p> <label><input type="checkbox" name="search_type[]" id="type_6" value="22" >Блузки</label> <label><input type="checkbox" name="search_type[]" id="type_7" value="98" >Боди</label> <label><input type="checkbox" name="search_type[]" id="type_8" value="23" >Джемперы</label> <div class="clear"></div> <p><br/>ВЕРХ + НИЗ:</p> <label><input type="checkbox" name="search_type[]" id="type_23" value="55" >Домашняя одежда</label> <label><input type="checkbox" name="search_type[]" id="type_24" value="74" >Карнавальные костюмы</label> <label><input type="checkbox" name="search_type[]" id="type_25" value="40" >Комбинезоны</label> <div class="clear"></div> <div class="fast_search_title"><strong><big>Пол:</big></strong></div> <label><input type="checkbox" name="search_sex[]" id="sex_0" value="1" >женский</label> <label><input type="checkbox" name="search_sex[]" id="sex_1" value="2" >мужской</label> <label><input type="checkbox" name="search_sex[]" id="sex_2" value="4" >unisex</label> <div class="fast_search_title"><strong><big>Цена:</big></strong></div> <div class="search_price"> <label><input type="radio" name="search_price" id="price_0" value="0;3000">меньше 3000 руб.</label> <label><input type="radio" name="search_price" id="price_1" value="3000;8000">от 3000 до 8000 руб.</label> </div> <div style="display:none;"> <div class="fast_search_title"><strong><big>Продается:</big></strong></div> <label><input type="radio" name="search_place" id="place_0" value="1" >online</label> <label><input type="radio" name="search_place" id="place_1" value="2" >offline</label> <label><input type="radio" name="search_place" id="place_2" value="0" >неважно</label> </div> <div class="clear"></div> <input type='submit' value='Искать' name='btnSearch'/> </form> <?php } ?> </body> </html>
engager Sps tebe bolshoe za tvoy trud ,za vse...blogadoryu...hm teper nado tvoy skript soedinit v BD.наверное отныне ябуду тут.яновичок в этом деле.поэтому тут могу многому научится. я сам писалкод таким образом: search.php <form action="form.php" method=post> <table align=center bgcolor=f1f1f1><tr><td> <?PHP include('inc/config.php'); $a='Select * from tip'; $result=mysql_query($a); while($netice=MYSQL_FETCH_ARRAY($result)) { echo '<b>'.$netice['ad'].' :</b><br>'; $b='Select * from nov where tip_id="'.$netice['id'].'"'; $result2=mysql_query($b); while($netice=mysql_fetch_array($result2)) { echo $netice['ad'].' <input type=checkbox name=nov_'.$netice['id'].' value='.$netice['id'].'> '; } echo '<br><br>'; } echo '<b>Pol :</b><br>'; $c='Select * from cins'; $result3=mysql_query($c); while($netice3=MYSQL_FETCH_ARRAY($result3)) { echo $netice3['ad'].' <input type=checkbox name=cins_'.$netice3['id'].' value='.$netice3['id'].'> '; } echo '<br><br>'; echo ' <input type=reset value=steret>'; echo ' <input type=submit value=iskat>'; ?> </td></tr></table> </form> form.php <?PHP include('inc/config.php'); $c='Select * from cins'; $result3=mysql_query($c); while($netice3=MYSQL_FETCH_ARRAY($result3)) { if(isset($_POST['cins_'.$netice3['id']])) { $a='Select * from tip'; $result=mysql_query($a); while($netice=MYSQL_FETCH_ARRAY($result)) { $netice['ad']; $b='Select * from nov where tip_id="'.$netice['id'].'"'; $result2=mysql_query($b); while($netice=mysql_fetch_array($result2)) { if(isset($_POST['nov_'.$netice['id']])) { $nov_id=$_POST['nov_'.$netice['id']]; $cins_id=$_POST['cins_'.$netice3['id']]; $g='select * from tovar where nov_id='.$nov_id.' and cins_id='.$cins_id; $n=MYSQL_QUERY($g); while($pp=MYSQL_FETCH_ARRAY($n)) { echo $pp['ad'].'<br>'; } } } } } } ?> poetomu i vivodit tolko esli vibrat oboix odnovremmenno.i pol + odin iz tovarov.
Вот и СГЛ.правда не всезаполнил.толко Cinsi.mayki.sviteri i yubki...ostalnie pustie. mojete esli netrudno posmotret mojno li kakto ispravitmoy kod?shtob skript rabotal?ili etot sposob oshibochniy,? -- phpMyAdmin SQL Dump -- version 2.11.7 -- http://www.phpmyadmin.net -- -- Хост: localhost -- Время создания: Фев 05 2010 г., 14:43 -- Версия сервера: 5.0.51 -- Версия PHP: 5.2.6 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; -- -- База данных: `shop` -- -- -------------------------------------------------------- -- -- Структура таблицы `cins` -- CREATE TABLE IF NOT EXISTS `cins` ( `id` int(2) NOT NULL auto_increment, `ad` varchar(10) collate utf8_unicode_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=3 ; -- -- Дамп данных таблицы `cins` -- INSERT INTO `cins` (`id`, `ad`) VALUES (1, 'kishi'), (2, 'qadin'); -- -------------------------------------------------------- -- -- Структура таблицы `nov` -- CREATE TABLE IF NOT EXISTS `nov` ( `id` int(7) NOT NULL auto_increment, `ad` varchar(35) collate utf8_unicode_ci NOT NULL, `tip_id` varchar(32) collate utf8_unicode_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=17 ; -- -- Дамп данных таблицы `nov` -- INSERT INTO `nov` (`id`, `ad`, `tip_id`) VALUES (1, 'Yubki', '4'), (2, 'Bryuki', '4'), (3, 'Shorti', '4'), (4, 'Cinsi', '4'), (5, 'Svitera', '2'), (6, 'Mayki', '2'), (7, 'Rubashki', '2'), (8, 'Bluzki', '2'), (9, 'Dublenki', '1'), (10, 'Shubi', '1'), (11, 'Palto', '1'), (12, 'Kurtki', '1'), (13, 'Sarafani', '3'), (14, 'Platya', '3'), (15, 'Kostyumi', '3'), (16, 'Kombinezoni', '3'); -- -------------------------------------------------------- -- -- Структура таблицы `tip` -- CREATE TABLE IF NOT EXISTS `tip` ( `id` int(7) NOT NULL auto_increment, `ad` varchar(35) collate utf8_unicode_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=5 ; -- -- Дамп данных таблицы `tip` -- INSERT INTO `tip` (`id`, `ad`) VALUES (1, 'Ulitsa'), (2, 'Verx'), (3, 'verx+niz'), (4, 'niz'); -- -------------------------------------------------------- -- -- Структура таблицы `tovar` -- CREATE TABLE IF NOT EXISTS `tovar` ( `id` int(7) NOT NULL auto_increment, `ad` text collate utf8_unicode_ci NOT NULL, `shekil` text collate utf8_unicode_ci NOT NULL, `cins_id` int(2) NOT NULL, `qiymet` int(7) NOT NULL, `nov_id` int(4) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=13 ; -- -- Дамп данных таблицы `tovar` -- INSERT INTO `tovar` (`id`, `ad`, `shekil`, `cins_id`, `qiymet`, `nov_id`) VALUES (1, 'Cins Shalvar', '1.jpg', 1, 100, 4), (2, 'Cins shalvar 2', '2.jpg', 2, 100, 4), (3, 'cins shalvar 3', '3.jpg', 1, 150, 4), (4, 'CINS SHALVAR 4', '4.jpg', 2, 170, 4), (5, 'cins shalvar 5', '5.jpg', 1, 270, 4), (6, 'cins shalvar 6', '6.jpg', 2, 214, 4), (7, 'Yubka 1', '', 2, 150, 4), (8, 'yubka2', '', 2, 35, 4), (9, 'sviter1', '', 1, 111, 2), (10, 'sviter2', '', 2, 333, 2), (11, 'mayka1', '', 1, 131, 2), (12, 'mayka2', '', 2, 221, 2);
ну собственно, дело осталось за немногим. то, что приезжает в пост-запросе - это ни что иное, как идентификаторы соответствующих атрибутов товара (город, тип итд). нужно составить на основе этих параметров селект. нечто: [sql]select id, ad, shekil from tovar where ... [/sql] теперь составляем условие для запроса. например, отфильтруем по типу одежды, на основании того, что выбрал пользователь. PHP: if (isset($_POST['search_type'])) $where = 'nov_id in (' . implode($_POST[',', $_POST['search_city'])) . ')' потом делаем так, чтоб вместо ... было значение перменной $where этот запрос вернет весь товар с заданным типом.
sps.ya nepolnostyu ponel...dodelal svoim putem : form.php <?PHP include('inc/config.php'); $maxx=$_POST['max']; $minn=$_POST['min']; if(empty($maxx)){$maxx=1000000;} if(empty($minn)){$minn=0;} $netice['ad']; $b='Select * from nov'; $result2=mysql_query($b); while($netice=mysql_fetch_array($result2)) { if(isset($_POST['nov_'.$netice['id']])) { $nov[].=$_POST['nov_'.$netice['id']]; } } if(count($nov)==0) { $b='Select * from nov'; $result2=mysql_query($b); while($netice=mysql_fetch_array($result2)) { $nov[].=$netice['id']; } } $c='Select * from cins'; $result3=mysql_query($c); while($netice3=MYSQL_FETCH_ARRAY($result3)) { if(isset($_POST['cins_'.$netice3['id']])){$cins[]=$_POST['cins_'.$netice3['id']];} } /*for($x=0;$x<count($cins);$x++) { echo $cins[$x].'<br>'; }*/ if(count($cins)==0) { $c='Select * from cins'; $result3=mysql_query($c); while($netice3=MYSQL_FETCH_ARRAY($result3)) { $cins[]=$netice3['id']; } /*for($x=0;$x<count($cins);$x++) { echo $cins[$x].'<br>'; } */ } for($x=0;$x<count($cins);$x++) { for($y=0;$y<count($nov);$y++) { $sql='select * from tovar where nov_id='.$nov[$y].' and cins_id='.$cins[$x].' and qiymet<'.$maxx.' and qiymet>'.$minn; $net=MYSQL_QUERY($sql); while($tovar=MYSQL_FETCH_ARRAY($net)) { echo $tovar['ad'].'<br>'; } } } /* $c='Select * from cins'; $result3=mysql_query($c); while($netice3=MYSQL_FETCH_ARRAY($result3)) { if(isset($_POST['cins_'.$netice3['id']])) { $a='Select * from tip'; $result=mysql_query($a); while($netice=MYSQL_FETCH_ARRAY($result)) { $netice['ad']; $b='Select * from nov where tip_id="'.$netice['id'].'"'; $result2=mysql_query($b); while($netice=mysql_fetch_array($result2)) { if(isset($_POST['nov_'.$netice['id']])) { $nov_id=$_POST['nov_'.$netice['id']]; $cins_id=$_POST['cins_'.$netice3['id']]; $g='select * from tovar where nov_id='.$nov_id.' and cins_id='.$cins_id; $n=MYSQL_QUERY($g); while($pp=MYSQL_FETCH_ARRAY($n)) { echo $pp['ad'].'<br>'; } } } } } }*/ ?> vse rabotaet... vserovno ogromnoe sposibo za vnimanie .Ochen blogadoryu.mojno uje zakrit forum.