Hi I'm having trouble searching my database. When I type two words in the search field it only searches for the second word. For example: if I typed london zoo , it will only search for zoo.
Is this something to do with the explode function? I am stuck, any help would be amazing. Thanks
Here is my code: <?php
// Get the search variable from URL
$var = @$_GET['q'] ; $trimmed = trim($var); //trim whitespace from the stored variable
// rows to return $limit=10;
// check for an empty string and display a message. if ($trimmed == "") { echo "<p>Please enter a search...</p>"; exit; }
// check for a search parameter if (!isset($var)) { echo "<p>We dont seem to have a search parameter!</p>"; exit; }
//connect to your database ** EDIT REQUIRED HERE ** mysql_connect("host","username","password");
//specify database ** EDIT REQUIRED HERE ** mysql_select_db("database_name") or die("Unable to select database");
// Build SQL Query $search_words = (explode(' ', $trimmed)); foreach ($search_words as $word) { $query = "select * from table where Organisation like '%$word%' UNION select * from table where Location like '%$word%' UNION select * from table where Prices like '%$word%' UNION select * from table where Toddlers like '%$word%' UNION select * from table where Indoor_Outdoor like '%$word%' order by Organisation"; }
// If we have no results, offer a google search as an alternative
if ($numrows == 0) { echo "<h4>Results</h4>"; echo "<p>Sorry, your search: "" . $trimmed . "" returned zero results</p>";
// google echo "<p><a href="http://www.google.com/search?q=" . $trimmed . "" target="_blank" title="Look up " . $trimmed . " on Google">Click here</a> to try the search on google</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 "<p>You searched for: "" . $var . ""</p>";
// now you can display the results returned // begin to show results set echo "Results <br /><br />"; $count = 1 + $s ;
// now you can display the results returned while ($row= mysql_fetch_array($result)) { $title = $row["Result"]; $col = $row["Organisation"]; $col1 = $row["Location"]; $col2 = $row["Indoor_Outdoor"]; $col3 = $row["Prices"]; $col4 = $row["Toddlers"]; $col5 = $row["Primary"]; $col6 = $row["Junior"]; $col7 = $row["High_School"]; $col8 = $row["All_Family"]; $col9 = $row["Telephone"]; $col10 = $row["Website_Address"];
echo '<div class="results">'; echo "<div class="title"> $col</div>"; echo "<div class="subheadings">Indoors or Outdoors? $col2</div>"; echo "<div class="subheadings">Price Range in £'s: $col3</div>"; echo "<div style="clear:both"></div>"; echo "<div class="suitable">Suitable for toddlers? $col4<br /> Suitable for primary schools? $col5 <br />Suitable for junior schools? $col6 <br />Suitable for high schools?$col7<br /> Suitable for all the family? $col8</div>"; echo "<div class="lo">Location: $col1</div>"; echo "<div style="clear:both"></div>"; echo "<div class="lo">Telephone Number: $col9</div>"; echo "<div style="clear:both"></div>"; echo "<div class="website">Website Addess: <a href="$col10">$col10</a></div>"; echo "<br /><br />"; echo "</div>n";
$count++ ; }
$currPage = (($s/$limit) + 1);
//break before paging echo "<br />";
// next we need to do the links to other results if ($s>=1) { // bypass PREV link if s is 0 $prevs=($s-$limit); print " <a href="$PHP_SELF?s=$prevs&q=$var"><< Prev 10</a>  "; }
// calculate number of pages needing links $pages=intval($numrows/$limit);
// $pages now contains int of pages needed unless there is a remainder from division
if ($numrows%$limit) { // has remainder so add one page $pages++; }
// check to see if last page if (!((($s+$limit)/$limit)==$pages) && $pages!=1) {
// not last page so give NEXT link $news=$s+$limit;