explode() function problem maybe


Posted on 16th Feb 2014 07:03 pm by admin

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"; }

$numresults=mysql_query($query);
$numrows=mysql_num_rows($numresults);

// If we have no results, offer a google search as an alternative

if ($numrows == 0)
{
echo "<h4>Results</h4>";
echo "<p>Sorry, your search: &quot;" . $trimmed . "&quot; 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: &quot;" . $var . "&quot;</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 "&nbsp;<a href="$PHP_SELF?s=$prevs&q=$var">&lt;&lt;
Prev 10</a>&nbsp&nbsp;";
}

// 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;

echo "&nbsp;<a href="$PHP_SELF?s=$news&q=$var">Next 10 &gt;&gt;</a>";
}

$a = $s + ($limit) ;
if ($a > $numrows) { $a = $numrows ; }
$b = $s + 1 ;
echo "<p>Showing results $b to $a of $numrows</p>";

?>

No comments posted yet

Your Answer:

Login to answer
116 Like 24 Dislike
Previous forums Next forums
Other forums

Last character removed
I have created a string from an array. I have inserted commas from my form values. I am trying to re

Warning message
I've put a website that I was doing live and I'm getting this warning message when I try to add a ne

Whats wrong with my query?
I am trying to get this query to show the appropriate ticked vehicle roof height, unless no boxs are

Looping Problem
I've got a client that has a database with about 200 events at any given time. I'm trying to loop t

Email to a friend script problems
I have this send-to-a-friend script with 2 issues:


1) When you open the form popup on a p

Varible in trigger - refering to correct schema
Hello

Im having some issues with my trigger.
What I want to do is call opon a differ

login box shows up again after logging in 2nd login works
Hello,

I am having trouble on my site Lockerz.rack111.com where when you login the login box

disabling a button server-side then re-enabling client-side breaks button postback
I have a tabbed container and a button (not in the container) on a page. If the first tab is selecte

Memory Allocation
Hi folks,
see this ex:

int v=5;
v=v+10;

then what will do the compiler before th

Create or replace package is ending ORA-21700
Database 9.2.0., patch 8 (9.2.0.8.0).
I trying run
create or replace package ....etc.

Sign up to write
Sign up now if you have flare of writing..
Login   |   Register
Follow Us
Indyaspeak @ Facebook Indyaspeak @ Twitter Indyaspeak @ Pinterest RSS



Play Free Quiz and Win Cash