joshgarrod Posted November 18, 2010 Share Posted November 18, 2010 Hi all, a have a small problem with my search script. At the moment I am searching a field in my tabel called searchtags, now if I enter a one word search term of a string of characters it will return the results but if they are not in the same order it won't. Example: searchtags contains - Ford Mondeo 1999 2.0L petrol car If I search "Ford Mondeo" the query returns results, whereas if I search "Mondeo Ford" the query returns no results? I assume I have to expand the search in some way but I don;t know how, any ideas? Thanks in advance <?php // Get the search variable from URL $var = @$_GET['q'] ; $field = @$_GET['field'] ; $trimmed = trim($var); //trim whitespace from the stored variable if ($field == "") { //if search from homepage start here $query = "select * from fleet where searchtags like \"%$trimmed%\" order by fleetref"; // EDIT HERE and specify your table and field names for the SQL query $numresults=mysql_query($query); $numrows=mysql_num_rows($numresults); $limit=10000; if ($numrows == 0) { echo "<p>Sorry, your search: "" . $trimmed . "" motorhomes to hire returned zero results</p>"; } // next determine if s has been passed to script, if not use 0 if (empty($s)) { $s=0; } // get results $query .= " limit $s,$limit"; $result = mysql_query($query) or die("Couldn't execute query"); // display what the person searched for echo "<h1>You searched for - " . $var . "cars</h1>"; // now you can display the results returned while ($row= mysql_fetch_array($result)) { $fleetref = $row['fleetref']; $fleetmake = $row['fleetmake']; $fleetmodel = $row['fleetmodel']; $fleetyear = $row['fleetyear']; $fleetchassis = $row['fleetchassis']; $fleetberth = $row['fleetberth']; $fleetlayout = $row['fleetlayout']; $fleetlength = $row['fleetlength']; $fleettype = $row['fleettype']; $fleetof = $row['fleetof']; $fleetimage1 = $row['fleetimage1']; $fleetimage2 = $row['fleetimage2']; $fleetimage3 = $row['fleetimage3']; $fleetimage4 = $row['fleetimage4']; $fleetadded = $row['fleetadded']; $fleetengine = $row['fleetengine']; $pricelow = $row['pricelow']; $pricemid = $row['pricemid']; $pricehigh = $row['pricehigh']; $fleetviews = $row['fleetviews']; $query = mysql_query("SELECT * FROM mhhire WHERE `ref` = '$fleetof'"); if(mysql_num_rows($query)==0){ echo "<p>This company does not exsist</p>"; }else{ while($details = mysql_fetch_array($query)){ $company = $details ['company']; $location = $details ['location']; echo "<div class=\"fleet_vehicle\">"; if ($fleetimage1 == "fleet/") { echo "<img src=\"images/no_image.jpg\" alt=\"$fleetmake $fleetmodel\" width=\"100\" height=\"75\" class=\"fleet_thumb\">"; } else { echo "<img src=\"$fleetimage1\" alt=\"$fleetmake $fleetmodel\" width=\"100\" height=\"75\" class=\"fleet_thumb\">"; } echo "<div class=\"fleet_title\">$fleetmake $fleetmodel $fleetyear</div>"; echo "<div class=\"fleet_berth\"><img src=\"images/$fleetberth.gif\" alt=\"$fleetberth berth\"></div>"; echo "<div class=\"fleet_details_in\"><div class=\"fleet_details\">- $fleetberth berth<br />- $fleetlayout<br /></div></div>"; echo "<div class=\"fleet_details_in\"><div class=\"fleet_details\">- $fleetchassis<br />- $fleetengine<br /></div></div>"; echo "<div class=\"fleet_details_in\"><div class=\"fleet_details\">- $fleetlength meters<br />- $fleettype<br /></div></div>"; echo "<div class=\"fleet_options\">From <strong>$company</strong> in <strong>$location</strong> - <a href=\"view_motorhome_for_hire.php?ref=$fleetref\">More info >></a></div>"; echo "</div>"; }} } } ?> Link to comment https://forums.phpfreaks.com/topic/219090-table-search-issues/ Share on other sites More sharing options...
Pikachu2000 Posted November 18, 2010 Share Posted November 18, 2010 Using LIKE doesn't allow you to search by relevance. It will only return a result if the specified string exists in the field. 'Ford Mondeo' may exist, but unless the record is 'Ford Mondeo Ford', the query won't return a result for LIKE %Mondeo Ford%. You may want to look into using FULLTEXT searches. Link to comment https://forums.phpfreaks.com/topic/219090-table-search-issues/#findComment-1136117 Share on other sites More sharing options...
joshgarrod Posted November 18, 2010 Author Share Posted November 18, 2010 I thought that may be the case, I think I will rearrange how my searchtags string is structured rather than go with the FULLTEXT option, it looks a little out of my depth and a lot of work for such a small thing. Thanks anyway for your reply. Link to comment https://forums.phpfreaks.com/topic/219090-table-search-issues/#findComment-1136126 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.