در قسمت جستجوی سایت من بعضی از کلمات رو جستجو می کنه و بعضی رو جستجو نمی کنه به طور مثال وقتی می نویسم قالیشویی مونا تو نتیجه نمایش نمی ده وقتی می نویسم مونا نشون می ده یا وقتی می نویسم قالیشویی بازم نشون کلیه قالیشویی ها رو نشون نمی ده
اینم بخشی از توابع و ساختار کد من :
function DRAW_SEARCH($DIR){
if(!$S_R_S = $GLOBALS['S_R_S']){
POST_TEXT($DIR);
return false;
}
$id = $DIR['id'];
if(!$tab__func_data=tab__func_data($id))return false;
$tr = $tab__func_data['tr'];
$td = $tab__func_data['td'];
$pub_height = $tab__func_data['pub_height'];
$pub_title_len = $tab__func_data['pub_title_len'];
$pub_text_len = $tab__func_data['pub_text_len'];
$pay_type = $tab__func_data['pay_type'];
$Path = _URL.'/themes/'._THEME.'/search/'.$DIR['pos'].'_';
?>
<table dir="<?=_DIR ?>" class="POST_SEARCH_MAIN_TAB" width="100%" height="100%" cellpadding="0" cellspacing="0" border="0">
<tr class="POST_SEARCH_MAIN_TAB_TITLE">
<td colspan="3">
<table dir="ltr" cellpadding="0" cellspacing="0" width="100%" height="19" class="POST_SEARCH_MAIN_TAB_TITLE">
<tr>
<td width="<?=IMGSIZE($Path.'top_left.jpg','w') ?>px" height="<?=IMGSIZE($Path.'top_left.jpg','h') ?>px"><img src="<?=$Path ?>top_left.jpg" width="<?=IMGSIZE($Path.'top_left.jpg','w') ?>px" height="<?=IMGSIZE($Path.'top_left.jpg','h') ?>px"></td>
<td width="100%" background="<?=$Path ?>top_center.jpg"><?=$DIR['title'] ?></td>
<td width="<?=IMGSIZE($Path.'top_right.jpg','w') ?>px" height="<?=IMGSIZE($Path.'top_right.jpg','h') ?>px"><img src="<?=$Path ?>top_right.jpg" width="<?=IMGSIZE($Path.'top_right.jpg','w') ?>px" height="<?=IMGSIZE($Path.'top_right.jpg','h') ?>px"></td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="1" class="POST_SEARCH_PARTITION_LINE" rowspan="7"></td>
<td></td>
<td width="1" class="POST_SEARCH_PARTITION_LINE" rowspan="7"></td>
</tr>
<tr class="POST_SEARCH_MAIN_TR"><td class="POST_SEARCH_MAIN_TD"><img src="s" width="1" height="8"></td></tr>
<tr class="POST_SEARCH_MAIN_TR"><td class="POST_SEARCH_MAIN_TD"><img src="s" width="1" height="3"></td></tr>
<tr><td>
<table width="100%" cellpadding="0" cellspacing="0" border="0" >
<?
$x=0;
foreach($S_R_S as $id => $S_R){
$ROW[$x]['id'] = $id;
$ROW[$x]['S_R'] = $S_R;
$x++;
}
for($i=0; $i<$tr; $i++){
echo "<tr height=".$pub_height.">";
$stt = GTPT('sPAG')*$tr*$td;
for($j=$stt; $j<$td+$stt; $j++){
if(! $tab__pub = tab__pub($ROW[$i*$td+$j]['id'])){
if($j==$td-1)echo "<td></td>";
$i=$tr;
$j=$td+$stt;
continue;
}
echo "<td width='".round(100/$td)."%' >";
DESCRIBE_SEARCH_RESULT($DIR, $ROW[$i*$td+$j]['id'], $ROW[$i*$td+$j]['S_R']/*text+title*/ );
echo "</td>";
}
echo "</tr>";
}
?>
</table>
</td></tr>
<tr class="POST_SEARCH_MAIN_TR"><td class="POST_SEARCH_MAIN_TD"><img src="s" width="1" height="10"></td></tr>
<tr class="POST_SEARCH_MAIN_TR"><td class="POST_SEARCH_MAIN_TD" background="<? echo $Path ?>down_center.jpg"><img src="s" width="1" height="1"></td></tr>
<tr height="1"><td class="POST_SEARCH_MAIN_SEARCHBAR"><center><?
if(sizeof($ROW)>$tr*$td){
$sizeof_ROW = sizeof($ROW);
if($sizeof_ROW%($tr*$td))$sizeof_ROW+=$tr*$td;
for($i=0; $i<=$sizeof_ROW; $i+=$tr*$td, $P++)
if(!$_GET['sPAG']&&$P==1)echo "1 ";
else if($_GET['sPAG']==$P-1)echo $P;
else echo "<a href='"._URL."/index.php?DPT=S1&SRCH=".GTPT('SRCH')."&sPAG=".($P-1)."'> ".$P." </a>";
}
?></center></td></tr>
<tr class="POST_SEARCH_MAIN_TR">
<td class="POST_SEARCH_MAIN_TD" colspan="3">
<table dir="ltr" cellpadding="0" cellspacing="0" class="POST_SEARCH_MAIN_TAB" width="100%" height="8">
<tr>
<td width="<?=IMGSIZE($Path.'down_left.jpg','w') ?>px"><img src="<? echo $Path ?>down_left.jpg" height="<?=IMGSIZE($Path.'down_left.jpg','h') ?>px"></td>
<td width="100%" background="<? echo $Path ?>down_center.jpg" ></td>
<td width="<?=IMGSIZE($Path.'down_right.jpg','w') ?>px"><img src="<? echo $Path ?>down_right.jpg" height="<?=IMGSIZE($Path.'down_right.jpg','h') ?>px"></td>
</tr>
</table>
</td>
</tr>
<tr height="100%"><td colspan="3"> </td></tr>
</table>
<br>
<?
return true;
}
//************************************************** ***************************____________________cle anSRCHES
function cleanSRCHES($SRCHES,&$validExplode){
$SRCHES=str_replace(' ',' ',$SRCHES); // for clean search url
$SRCHES=stripcslashes($SRCHES);
if( (substr($SRCHES,0,1)=='"') and (substr($SRCHES,strlen($SRCHES)-1,1)=='"') ){
$validExplode=false;
return substr($SRCHES,1,strlen($SRCHES)-2);
} else {
$validExplode=true;
}
$SRCHES=str_replace(
array(
' در '
,' با '
,' از '
,' و '
,' که '
,' رو '
,' يا '
,' براي '
,' مثل '
,' حد '
,'ـ'
,'های '
,' in '
,' out '
,' for '
,' and '
,' the '
,' of '
,' from '
)
,' '
," $SRCHES "
);
$tmp=explode(' ',$SRCHES);
for($i=0; $i<sizeof($tmp); $i++){
$tmp[$i]=trim($tmp[$i]);
if(strlen($tmp[$i])>2){
$tmp2[]=$tmp[$i];
}
}
if(sizeof($tmp2)){
$SRCHES=implode(' ',$tmp2);
return trim($SRCHES);
} else {
return false;
}
}
//************************************************** ***************************____________________SEA RCH
function SEARCH($SRCHES='', $gid='', $pos=''){
$_SESSION['SRCHES'] = $SRCHES;
$validExplode = true;
$SRCHES=FILTER_WORD($SRCHES,$validExplode);
$SRCHES=FILTER_WORD($SRCHES);
if(empty($SRCHES))return false;
if($klID=$_SESSION['klID']){ // calling up a keyLog
if(!$resS0 = @ mysql_query(" select `key` from `keyLog` where `id`='$klID' limit 1 ")){
;//
} else {
$SRCHES=mysql_result($resS0,0,0);
$_GET['SRCH']=$SRCHES;
}
$_SESSION['klID']=NULL;
} else if(!$reskl=mysql_query(" select `id` from `keyLog` where `key`='$SRCHES' limit 1 ")){ // search summary
;//
} else {
$ip=$_SERVER['REMOTE_ADDR'];
if(mysql_num_rows($reskl)==0){
mysql_query(" insert into `keyLog` (`key`,`rep`,`ip`) values ('$SRCHES','1','$ip') ");
} else {
$reckl=mysql_fetch_array($reskl);
if(!mysql_query(" update `keyLog` set `rep`=`rep`+1 where `id`='".$reckl['id']."' limit 1 ")){
echo "err01";
} else {
;//
}
}
}
/*******************************\
| |
| |
| |
| FETCH.FROM.MySQL |
| |
| |
| |
\*******************************/
if(strstr($SRCHES,"ي")){
$SRCHES.= " ".str_replace("ي","ی",$SRCHES);
}
if(strstr($SRCHES,"ی")){
$SRCHES.= " ".str_replace("ی","ي",$SRCHES);
}
echo $SRCHES;
$SRCHES = str_replace( '+', ' ', $SRCHES);
if($validExplode==true){
$SRCHES = explode(' ',$SRCHES);
} else {
$tmp[0] = trim($SRCHES);
$SRCHES=$tmp;
}
$GRADE_TTL = array();
$GRADE_TXT = array();
if(! $db = db_connect() ){echo "Error in MySQL connection";return false;}
$QUERY = " SELECT * FROM pub WHERE 1 AND active<>0 ";
///???????S1S2S3S4S5S6
if($gid) $QUERY .= " AND ( sgid='$gid' OR mgid='$gid' ) ";
if($pos) $QUERY .= " AND pos=(select `city` from `city` where `id`='$pos' limit 1 ) ";
$QUERY .= " AND ( 1 ";
for($i=0; $i<sizeof($SRCHES); $i++){
if($SRCHES[$i]!=''){
$QUERY .= " AND ( 0
OR text LIKE '% ".$SRCHES[$i]." %'
OR text LIKE '".$SRCHES[$i]." %'
OR text LIKE '% ".$SRCHES[$i]."'
OR title LIKE '% ".$SRCHES[$i]." %'
OR title LIKE '".$SRCHES[$i]." %'
OR title LIKE '% ".$SRCHES[$i]."' )
";
}
}
$QUERY .= " ) ";
$QUERY.= " UNION ".str_replace(" AND ( 0 ", " OR ( 0 ", $QUERY);
# $QUERY .= " ORDER BY star DESC ,rand() ";
$QUERY .= " LIMIT 100 ";
if(! $result = mysql_query( $QUERY ) )
{ echo "<center class=ER1 >Error in progress</center>"; return false; }
for($i=0; $i<mysql_num_rows($result); $i++)
$RES[$i]=mysql_fetch_array($result);
//===========================================
/*******************************\
| |
| |
| |
| OPTIMIZE.SEARCH.RESULT |
| |
| |
| |
\*******************************/
if($RES){
foreach($RES as $k => $record){
$recordtext=$record['text'].' '.$record['title'];
for($i=0; $i<sizeof($SRCHES); $i++){
$recordtext=str_replace($SRCHES[$i],$SRCHES[0],$recordtext);
}
$sizeofrecordtext[$record['id']]=sizeof(explode($SRCHES[0],$recordtext));
}
$x=0;
foreach($RES as $k => $record){
foreach($sizeofrecordtext as $k2 => $r2)
if($r2>$sizeofrecordtext[$maxRecordID])
$maxRecordID=$k2;
$OP_RES[$x++]=tab__pub($maxRecordID);
$sizeofrecordtext[$maxRecordID]=0;
$maxRecordID=0;
}
}
//===========================================
/*******************************\
| |
| |
| |
| DROP.OUT.RESULT |
| |
| |
| |
\*******************************/
if($OP_RES)
foreach($OP_RES as $k => $r){
$SRCcorrectRESULT=false;
for($i=0; $i<sizeof($SRCHES); $i++){
if($SRCHES[$i]){
if( (stristr($OP_RES[$k]['text'],$SRCHES[$i]))
or (stristr($OP_RES[$k]['title'],$SRCHES[$i])) ){ // edited on 2007.12.24
$SRCcorrectRESULT=true;
}
}
$OP_RES[$k]['text'] = str_replace($SRCHES[$i],"<b style=color:red >".$SRCHES[$i]."</b>",$OP_RES[$k]['text']);
$OP_RES[$k]['title']= str_replace($SRCHES[$i],"<b style=color:red >".$SRCHES[$i]."</b>",$OP_RES[$k]['title']);
}
if($SRCcorrectRESULT){
$DRP_S_R[$OP_RES[$k]['id']]['text'] = $OP_RES[$k]['text'];
$DRP_S_R[$OP_RES[$k]['id']]['title'] = $OP_RES[$k]['title'];
}
}
//===========================================
return $DRP_S_R;
}
//************************************************** ***************************____________________DES CRIBE_SEARCH_RESULT
function DESCRIBE_SEARCH_RESULT($DIR,$id, $S_R/*text+title*/){
if(!$tab__pub = tab__pub($id))return false;
if(! $tab__func_data = tab__func_data($DIR['id']))return false;
$pub_height = $tab__func_data['pub_height'];
$pub_title_len = $tab__func_data['pub_title_len'];
$pub_text_len = $tab__func_data['pub_text_len'];
$pay_type = $tab__func_data['pay_type'];
$tab__users = tab__users($tab__pub['email']);
switch($_SESSION['LANG']){
case 'persian' :
$SEARCH_TIME=substr(U2Vaght($tab__pub['st_date']),5,5);
break;
DEFAULT :
$SEARCH_TIME=substr(U2Time($tab__pub['st_date']),5,5);
break;
}
?>
<table width="100%" height="100%" cellpadding="0" cellspacing="0" border="0" class="DIST"
title="<?=SUB_STRING($tab__pub['text'], 0, $pub_title_len) ?>" >
<tr>
<td style="width:<?=$pub_height ?>px" align="center"><img src="s.gif" height="5" width="1"></td>
<td><img src="s.gif" height="10" width="1"></td>
</tr>
<tr>
<td style="width:<?=$pub_height ?>px" align="center"><?=$SEARCH_TIME ?></td>
<td class="DIST15"><a href="<?=_URL?>/MGID_<?=$tab__pub['mgid']?>/SGID_<?=$tab__pub['sgid']?>/<?=$id?>-<?=urlencode($tab__pub['title'])?>.html"><? echo SUB_STRING($S_R['title'], 0, $pub_title_len+15) ?></a></td>
</tr>
<tr>
<th><a href="<?=_URL?>/MGID_<?=$tab__pub['mgid']?>/SGID_<?=$tab__pub['sgid']?>/<?=$id?>-<?=urlencode($tab__pub['title'])?>.html"><img border="0" src="<? echo FIND_MY_PHOTO($id) ?>" height="<? echo ($pub_height*0.5) ?>"></a></th>
<td class="DIST60"><span class="SEARCH_TAB"><br><?=SUB_STRING($S_R['text']/*.$tab__pub['text']*/, 0,$pub_text_len+10) ?></span></td>
</tr>
<tr><td></td><td height="5"></td></tr>
<tr><td></td>
<td dir=<?=_DIR ?> class="POST_SEARCH_PROP" class="DIST15">
<?
if($tab__users['name']) echo $tab__users['name'];
if($tab__pub['pos']) echo "، ".$tab__pub['pos'];
if($tab__pub['phone']) echo "، ".__I__SEARCH___01." : ".$tab__pub['phone'];
?>
</td>
</tr>
<tr><td></td><td height="5"></td></tr>
<tr><th colspan="2">
<table class="POST_SEARCH_DISTANCE_LINE" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>
</th></tr>
</table>
<?
}
?>