Log in

View Full Version : Searching For Data In A MySQL DB



tomyknoker
04-09-2007, 01:00 AM
Am new to php and was wondering if anybody could give me a hand... I am able to pull data out of my database and display it with no dramas. But what I want to try and do is have a textfield where a user can search and submit and they get a result... e.g. 'Yes that was in the database' or 'No try again'... If anyone can help would be much appareciated! I can post the code where I have managed to pull the data out of the database if that helps?

tomyknoker
04-09-2007, 02:13 AM
Well I tried this, but get a parse error on line 37 which is
if ($trimmed == "")



<html>

<head>

<title>Search</title>

</head>

<body>



<form name="form" action="search.php" method="get">

<input type="text" name="q" />

<input type="submit" name="Submit" value="Search" />

</form>

<?php

if(empty($_SESSION['session_started']))
{
session_cache_expire(120);
session_start();
$_SESSION['session_started'] = "TRUE";
}


$var = @$_GET['q'] ;

$trimmed = trim($var) //trim whitespace from the stored variable

// 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 the mysql database

include 'library/config.php';
include 'library/opendb.php';

$query = "SELECT Code FROM tblcodes where Code like '&#37;$trimmed%";

$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: &quot;" . $trimmed . "&quot; 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: &quot;" . $var . "&quot;</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\">&lt;&lt;

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 &gt;&gt;</a>";

}



$a = $s + ($limit) ;

if ($a > $numrows) { $a = $numrows ; }

$b = $s + 1 ;

echo "<p>Showing results $b to $a of $numrows</p>";

include 'library/closedb.php';

?>Any ideas?

boxxertrumps
04-09-2007, 02:18 AM
$trimmed = trim($var); //trim whitespace from the stored variable

You missed the semicolon.