multi input form

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
adult.swim
Forum Newbie
Posts: 9
Joined: Sun Jul 09, 2006 8:00 pm

multi input form

Post by adult.swim »

Ive created a single input form. Its input is later compared to a column in the mysql database that Ive created (so basically its a search form).

My question is how are multi input forms generally handled? My understanding is that when u query a database, u can only traverse 1 column. Is it possible to take multiple inputs and check multiple columns at the same time?

Here is the code I have for my form and search pages:

form.html

Code: Select all

<form name="form" action="search.php" method="get">
  mlsnumber:
  	<input type="text" name="q" />
  	<input type="submit" name="Submit" value="Search" />
</form>Now, enter
search.php

Code: Select all

// 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("homep_listings") or die("Unable to select database"); //select which database we're using

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

  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>";
Ward
Forum Commoner
Posts: 74
Joined: Thu Jul 13, 2006 10:01 am

Post by Ward »

Code: Select all

SELECT *
FROM listings
WHERE mlsnumber LIKE '%$trimmed%'
OR other_field LIKE '%$trimmed%'
OR another_field LIKE '%$trimmed'
This is a very simple way of doing it, you won't get results ordered by relevancy, but it will work.
User avatar
RobertGonzalez
Site Administrator
Posts: 14293
Joined: Tue Sep 09, 2003 6:04 pm
Location: Fremont, CA, USA

Post by RobertGonzalez »

Remember, too, that OR returns all records where any one of the fields matches the given criteria. AND returns only those records where alls fields (included in the AND) match the given criteria.
Post Reply