Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Поиск с использованием базы данных
 
 автор: emme   (15.08.2006 в 10:46)   письмо автору
 
 

Есть доска объявлений с использованием БД. Нужен код для написания системы поиска

   
 
 автор: himic   (15.08.2006 в 11:02)   письмо автору
 
   для: emme   (15.08.2006 в 10:46)
 

Вот мой поиск по маскам, вставишь свои поля и всё

<script language="javascript">
function textadd(text1)
{
     if ((document.selection))
     {
       document.form2.search_string.focus();
       document.form2.document.selection.createRange().text = text1+document.form2.document.selection.createRange().text;
     } else document.form2.search_string.value += text1;
  }
</script>

<form id="form2" name="form2" method="post" action="">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="23" class="tab_zag">&nbsp;Поиск&nbsp;</td>
 </tr>
</table>
  <table width="100%" border="0" cellpadding="3" cellspacing="1" class="style1" style="border: 1px solid #666666">
     <tr>
       <td bgcolor="#A8A8A8"><strong>Ключевые слова</strong></td>
       <td bgcolor="#A8A8A8"><input name="search_string" type="text" id="search_string" value="<? if(!empty($_POST['search_string'])) echo zamena($_POST['search_string']);?>" size="50" /></td>
     </tr>
     <tr>
       <td bgcolor="#A8A8A8"><strong>Искать в </strong></td>
       <td bgcolor="#A8A8A8"><select name="search_type">
         <option value="">Везде</option>
<?
$punct
=mysql_query("select * from menu order by data asc");
while(
$punct_arr=mysql_fetch_array($punct))    {
  echo 
"<option value=\"".$punct_arr['razdel']."\">".$punct_arr['menu_rus']."</option>";
}     
?>
       </select>       </td>
     </tr>
     <tr>
       <td bgcolor="#A8A8A8"><b>количество выводимых тем max30 min 3</b></td>
       <td bgcolor="#A8A8A8"><select name="kol_vo">
         <? for($i=3$i<=30$i++){
         if(
$i!=20)
        echo 
'<option value="'.$i.'">'.$i.'</option>';
        else 
           echo 
'<option value="'.$i.'" selected="selected">'.$i.'</option>';
          } 
?>
       </select></td>
     </tr>
     <tr>
       <td bgcolor="#A8A8A8"><strong>Условие</strong></td>
       <td bgcolor="#A8A8A8"><input type="button"  value="[]" onclick="textadd('[]')"/>
         вместо этого может находится один символ
       <br> <input type="button"  value="][" onclick="textadd('][')"/>       
        вместо этого может находится что угодно<br>
        напр: м[]локо - найдёт как малако так и молоко<br>        
         напр: свинец][чушк - найдёт свинец в чушках </td>
     </tr>
     <tr>
       <td bgcolor="#A8A8A8">&nbsp;</td>
       <td bgcolor="#A8A8A8"><input type="submit" name="Submit" value="<?=$poisk?>" /></td>
     </tr>
   </table>
</form>
 <?php 
function search(){
if(!empty(
$_POST['search_string']) && strlen($_POST['search_string'])>2):
$search_string=str_escape($_POST['search_string']);

$search_string preg_replace("|\[\]|","_",$search_string);
$search_string preg_replace("|\]\[|","%",$search_string);
$kol_vo=str_escape($_POST['kol_vo']);
if(
$kol_vo>30$kol_vo=30;
if(
$kol_vo<3$kol_vo=3;
if(!empty(
$_POST['search_type'])){
$search_type=str_escape($_POST['search_type']);
$search_res=mysql_query("select * from news".$_SESSION['lang']." where text like '%".$search_string ."%' and type ='".$search_type."' limit ".$kol_vo);
}else{
$search_type=str_escape($_POST['search_type']);
$search_res=mysql_query("select * from news".$_SESSION['lang']." where text like '%".$search_string ."%'  limit ".$kol_vo);

}


while(
$arr=mysql_fetch_array($search_res)):
$str='';
$arr_theme=mysql_fetch_array(mysql_query("select * from menu".$_SESSION['lang']." where razdel='".$arr['type']."' limit 1"));
$search_string preg_replace("#_#i",".{1}",$search_string);
$search_string preg_replace("#%#i",".{0,}",$search_string);
//$a=explode(' ',$search_string);
//foreach($a as $o)
preg_match("#.{0,150}".$search_string.".{0,150}#i",strip_tags(zamena($arr['text'])),$out); 

$str=$out[0];
//foreach($a as $o)
//$str=preg_replace( "#".$o."#is", "<b style=\"font-size:14px\">".$o."</b>", $str);
echo '<b>'.$arr_theme['menu_rus'].'</b><br>...'.$str.'...<br><a href="?type='.$arr['type'].'&previd='.$arr['id'].'" class="graydk">http://lead.kz/?type='.$arr['type'].'&previd='.$arr['id'].'</a><hr  style="border:#666666 1px dotted" size="1" />'
endwhile;
if(
count($str)<1)
echo 
'<div align="center"><b>По вашему запросу ничего не найдено!('.zamena($search_string).')</b></div>';
endif;
}
 
search();
?> 

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования