Jump to content

[SOLVED] Search table for keywords


joshgarrod

Recommended Posts

Hi, my search script is not working correctly, i send a search but it just refreshes the page with no results returned, where am i going wrong? thanks in advance.

 

PHP

<?php
  $find = $_POST['find'];
//This is only displayed if they have submitted the form 
if ($searching =="yes") 
{ 
echo "<h2>Results</h2><hr>"; 

//If they did not enter a search term we give them an error 
if ($find == "") 
{ 
echo "<p>Please enter a search term"; 
exit; 
} 

// Otherwise we connect to our Database 
mysql_connect("ip_addy", "usr", "pass") or die(mysql_error()); 
mysql_select_db("databsae") or die(mysql_error()); 

// We preform a bit of filtering 
$find = strtoupper($find); 
$find = strip_tags($find); 
$find = trim ($find); 

//Now we search for our search term, in the table the user specified 
$find_array = explode(" ", $find);
$find_sql = "";     // init
foreach ($find_array as $temp)
   $find_sql .= "upper($field) LIKE '%".$temp."%' OR";
// note only need to do the substr once, the second time was removing the other %'
$find_sql = substr($find_sql, 0, -3);  // throw away last OR statement 

$sql = "SELECT * FROM $field WHERE $find_sql";
$data = mysql_query($sql) OR DIE("SQL Was: " . $sql . "<br />ERROR: " . mysql_error());

  $sql = mysql_query("SELECT * FROM $field");
  $num = mysql_num_rows($sql);
  if ($num > 0) {
      // There's a result
  } else {
      // No results found.
  }//And we display the results 
while($result = mysql_fetch_array( $data )) 
{ 
echo "<b>Title:   </b>";
echo $result['title']; 
echo "<br>"; 
echo "<b>Description:   </b>";
echo $result['descr']; 
echo "<br>";
echo "<b>URL: Click here to view more details:    </b>";
echo "<a href=\"view_vehicle_accessory_$field".$result['ref']."\">More Details >></a>";
echo "<br>"; 
echo "<hr>";
} 

//This counts the number or results - and if there wasn't any it gives them a little message explaining that 
$anymatches=mysql_num_rows($data); 
if ($anymatches == 0) 
{ 
echo "Sorry, but we can not find an entry to match your query<br><br>"; 
} 

//And we remind them what they searched for 
echo "<b>Searched For:</b> " .$find; 
} 
?>

 

HTML:

<form action="<?=$PHP_SELF?>" method="post" name="search" class="style1">
Seach for: <input type="text" name="find" /> in 
<Select NAME="field">
  <option value="electrics">Electrics</option>
  <option value="gas">Gas</option>
  <option value="towing">Towing</option>
  <option value="water">Water</option>
  <option value="kitchen">Kitchen</option>
  <option value="furniture">Furniture</option>
  <option value="security">Security</option>
  <option value="stepslevel">Steps & Levelling</option>
</Select>
<input type="hidden" name="searching" value="yes" />
<input type="submit" name="search" value="Search" />
</form>

Link to comment
https://forums.phpfreaks.com/topic/149369-solved-search-table-for-keywords/
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.