Page 1 of 1

problems with a search form

Posted: Mon Nov 10, 2003 6:23 am
by kujtim
this is an html page :

Code: Select all

<html>
<head>
  <title></title>
</head>

<body>
 <form name="form" action="php.php" method="get">
  <input type="text" name="q" />
  <input type="submit" name="Submit" value="Search" />
</form>

</body>

</html>
this is an php page :

Code: Select all

<html>

<head>
  <title></title>
</head>

<body>

<?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","administrator",""); //(host, username, password)

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

// Build SQL Query
$query = "select * from the_table where 1st_field like "%$trimmed%"
  order by 1st_field"; // 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["1st_field"];

  echo "$count.)&nbsp;$title" ;
  $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"><<
  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 >></a>";
  }

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

?>


</body>

</html>
the problem si .:
if you can see i have to create a database table ...
i now how to create table but i don't now what to put on it
please help....

Added phptags around code --JAM

Posted: Mon Nov 10, 2003 12:15 pm
by m3mn0n
You should replace $var with $trimmed in many places in your script.

Code: Select all

<?php
// Build SQL Query 
$query = "select * from the_table where 1st_field like "%$trimmed%" 
  order by 1st_field"; // EDIT HERE and specify your table and field names for the SQL query 
?>
From that piece of code, I can see the fields in the database all have a keyword named 1st_field that they are identified by in searches.

Is this some open source applications your experimenting with? If so, didn't it come with documentation that tells you what info you need to add to the tables?