Hi All,
I have a search script which works fine. I just have a problem when a search is made that displays more than one result as all the results appear on 1 line with out spaces between them.
I would like to know how to display each result if there is more than one, on seperate lines. At the moment it looks like this:
1) resultoneresulttworesult3 - (for example if i had searched for 'result' as keyword.
I would like to know how to display them like this.
1) result 1
2) result 2
3) result 3
There are 4 rows in my table, ID, name, address, suburb, link
I only want to display name, but when i type in a suburb for example it lists all the names of the people in the suburb. so the results always only show the name. I just would like them to appear on seperate lines.
Also at the moment all i get results from is by searching by name, how would i make is so if a visitor typed in a suburb or address it would show those results too? I tried duplicating this:
// Build SQL Query
$query = "SELECT * FROM searchtable where name like \"%$trimmed%\"
ORDER BY name"; // EDIT HERE and specify your table and field names for the SQL query
$numresults=mysql_query($query);
$numrows=mysql_num_rows($numresults);
which worked, but i figure there must be a way to make this all one line using 'like'.
Copy of the code below:
<?php
// Connect to the database server
$dbcnx = @mysql_connect("localhost", "username", "password");
if (!$dbcnx) {
echo( "<P>Unable to connect to the " .
"database server at this time.</P>" );
exit();
}
// Select the database
if (! @mysql_select_db("databasename") ) {
echo( "<P>Unable to locate the databasename " .
"database at this time.</P>" );
exit();
}
?>
<P>Welcome to example</P>
<?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("localhost","username", "password"); //(host, username, password)
//specify database ** EDIT REQUIRED HERE **
mysql_select_db("databasename") or die("Unable to select database"); //select which database we're using
// Build SQL Query
$query = "SELECT * FROM searchtable where name like \"%$trimmed%\"
ORDER BY name"; // EDIT HERE and specify your table and field names for the SQL query
$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>";
// begin to show results set
echo "<p>Results</p>";
$count = 1 + $s ;
// now you can display the results returned
echo "$count.) $title " ;
$count++ ;
while ($row = mysql_fetch_array
($result)) {
$link = $row['link'];
$link_title = $row['name'];
echo "<a href=\"".$link."\">".$link_title."</a>";
}
$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>";
?>
Any help or direction towards tutorials would be greatly appreciated. I don't expect just code as i would like to understand what the code is doing 😃
Cheers.
[ ModEdit - bpat1434 ] Please use the php bbcode to post PHP code.