Forums

Simple Search

rohit 15 Apr, 2008
Hi,

I am trying to do a simple search. Upon clicking the Search button I do not see any search results. I am new to this. I am using the GET in the Form Method. Following is my code. I have tested the form independednt of joomla and it works ok.

Am I misisng something? I have not used anything in Form URL.

HTML Code:
<html>
<head>
</head>
<body>
  <input type="text" name="q" />
  <input type="submit" name="Submit" value="Search" />
</body>
</html>
On Submit 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("localhost","root",""«»); //(host, username, password)

//specify database ** EDIT REQUIRED HERE **
mysql_select_db("joomla15"«») or die("Unable to select database"«»); //select which database we're using

// Build SQL Query  
$query = "select * from jos_chronoforms_1 where fname like \"%$trimmed%\"  
  order by fname"; // 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 "Results";
$count = 1 + $s ;

// now you can display the results returned
  while ($row= mysql_fetch_array($result)) {
  $title = $row['Fname'];

  //echo "$count.) $title";
  echo $row['Fname'];
  $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>";
  
?>


Edited to add code tags<br><br>Post edited by: GreyHead, at: 2008/04/15 13:55
GreyHead 15 Apr, 2008
Hi rohit,

You have a lot of hand-built code there which is not using any of the Joomla functionality. I'm afraid that you'll just need to add some debug reports to find out what's happening.

Note: Running it through a PHP debugger suggests that you have double quotes "" in lines 46 & 65

Bob

PS You do not need the html, head or body tags in the html code, just the two input lines.
This topic is locked and no more replies can be posted.