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: "" . $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;
echo " <a href="$PHP_SELF?s=$news&q=$var">Next 10 >></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
24
Other forums
Header is not working in IE
Hi ! header function is not working in IE but it works in FF, Safari, Chrome. any help please. :
ALV List Display to point to another report on Double Click
Hi,
I want my ALV List Display to point to another report on Double Click on its line ite
Trigger tag in aspx is not coming
hi all ,iam new to ajax, iam using file upload inside the update pannel but right now i want to use
PHP hyperlinks generator
Hi
I need some help to get this done using php:
1 - I have few hyperlinks say 500
Unable to retreve the values from Mysql Query
Hi,
Here is the php code that I have, Query is running properly in phpmyadmin and is resu
How to generate a random array of integers subject to a certain constraint
I am writing a program that asks the user to enter an integer N and then generates a random array of
php code to accept and delete incoming data
Using following HTML Code please show me how to write PHP code to accept and delete the incoming dat
Email Form Syntax Issue
I need the TO: in email to display To: CEO instead of To: abc@mail.com
How to alter the scri
present value of sequence?
Hi
Please help me to find out the present value of sequence?
Thanks
IP Based Cron Jobs
I run cronjobs on my website. After one of my visitors got curious and tinkered around he realized h