Boas...
Perguntar aqui aos experts a ver se me dão uma ajudazinha!
O que se passa é o seguinte, eu tenho um site de venda de fotografia online,virada para a vertente desporto! o problema é este eu ao adicionar as fotos de uma prova de atletismo por exemplo, tenho de associar a cada foto uma keyword com o numero do dorsal do atleta que esta na foto,de modo a que este chegue ao site,procure pelo seu numero e apareçam as fotos todas dele,o problema é que se eu adicionar a keyword 25 por exemplo,ele ao procurar, vão aparecer as fotos do 25,125,225,325,1025,etc tudo o que contenha 25! o que eu queria era que a função do search fosse mais especifica!
O codigo que uso na search bar é este:
e na função do search é este:
Perguntar aqui aos experts a ver se me dão uma ajudazinha!
O que se passa é o seguinte, eu tenho um site de venda de fotografia online,virada para a vertente desporto! o problema é este eu ao adicionar as fotos de uma prova de atletismo por exemplo, tenho de associar a cada foto uma keyword com o numero do dorsal do atleta que esta na foto,de modo a que este chegue ao site,procure pelo seu numero e apareçam as fotos todas dele,o problema é que se eu adicionar a keyword 25 por exemplo,ele ao procurar, vão aparecer as fotos do 25,125,225,325,1025,etc tudo o que contenha 25! o que eu queria era que a função do search fosse mais especifica!
O codigo que uso na search bar é este:
Código:
<script language="javascript"
type="text/javascript">
function validateForm(search)
{
if(""==document.forms.search.search.value)
{
alert("Não introduziu nada para ser procurado!Tente de novo!");
return false;
}
}
</script>
<form name="Search" action="search.php" method="link" onSubmit="return validateForm(search);" style="margin: 0px; padding: 0px;">
<td class="search_bar">
<table width="100%">
<tr>
<td width="345" nowrap>
<div style="background-color: #E8E8E8; border: 1px solid #AFAFAF; padding: 3px;">
<b>Procura:</b> <input type="textbox" name="search" class="search_box"> <input type="submit" value="Ir" class="go_button">
<br />
<input type="radio" name="match_type" value="all"> Dorsal | <input type="radio" name="match_type" value="any" checked> Qualquer <? if($setting->hide_id != 1){ ?>| <input type="radio" name="match_type" value="id"> Todos os termos<? } ?>
</form>
</div>
</td>
</tr>
</table>
</td>
e na função do search é este:
Código:
# START SEARCH FUNCTIONALITY
$my_search = strtolower($my_search);
$my_search_words = split(" ",$my_search);
$words = count($my_search_words);
for($z = 0; $z < $words; $z++){
if(strlen($my_search_words[$z]) >= 1){
$my_search_words2 = $my_search_words2 . "," . strtolower($my_search_words[$z]);
//$my_search_words2 = "," . $my_search_words2;
}
}
$my_search_words2 = split(",",$my_search_words2);
$words2 = count($my_search_words2);
//echo $words2;
//exit;
//$my_search = "t";
if($match_type == "id"){
$searcher = "SELECT * FROM photo_package where active = '1' and gallery_id IN ($approved_cats) and id = '" . $_GET['search'] . "'";
}
if($match_type != "id"){
if($words2 < 2){
$searcher = "SELECT * FROM photo_package where active = '1' and gallery_id IN ($approved_cats) and keywords like '%$my_search%'";
} else {
$searcher = "SELECT * FROM photo_package where active = '1' and gallery_id IN ($approved_cats) and (";
for($z2 = 1; $z2 < $words2; $z2++){
$searcher.= " keywords like '%" . $my_search_words2[$z2] . "%'";
if($z2 < ($words2 - 1)){
if($match_type == "any"){
$searcher.= " or ";
}
if($match_type == "all"){
$searcher.= " and ";
}
}
}
if($words2 > 0){
$searcher.= " or";
}
for($z3 = 1; $z3 < $words2; $z3++){
$searcher.= " title like '%" . $my_search_words2[$z3] . "%'";
if($z3 < ($words2 - 1)){
if($match_type == "any"){
$searcher.= " or ";
}
if($match_type == "all"){
$searcher.= " and ";
}
}
}
if($words2 > 0){
$searcher.= " or";
}
for($z3 = 1; $z3 < $words2; $z3++){
$searcher.= " description like '%" . $my_search_words2[$z3] . "%'";
if($z3 < ($words2 - 1)){
if($match_type == "any"){
$searcher.= " or ";
}
if($match_type == "all"){
$searcher.= " and ";
}
}
}
}
//$searcher.= "keywords like '%$my_search%' ";
$search_display_limit = $setting->search;
$searcher.= ") order by cart_count desc LIMIT $search_display_limit";
}
Última edição: