Jump to content

j8r8c8

New Members
  • Posts

    1
  • Joined

  • Last visited

    Never

Posts posted by j8r8c8

  1. Anybody have any idea why this script produces a duplicate result for each keyword entered into the search form?

     

     

    <html>

    <?php

    include ("../_borders/top.htm");

     

     

    //This script searches 2 MySql fields

     

    $address = $_SERVER['PHP_SELF'];

     

    $hostname_logon = "****" ; 

    $database_logon = "****" ; 

    $username_logon = "****" ; 

    $password_logon = "****" ; 

    //open database connection

    $connections = mysql_connect($hostname_logon, $username_logon, $password_logon) or die ( "Unabale to connect to the database" );

    //select database

    mysql_select_db($database_logon) or die ( "Unable to select database!" );

     

    //specify how many results to display per page

      $limit = 20;

     

    // Get the search variable from URL

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

    //trim whitespace from the stored variable

      $trimmed = trim($var); 

    //separate key-phrases into keywords

      $trimmed_array = explode(" ",$trimmed);

     

    // check for an empty string and display a message.

    if ($trimmed == "") {

      $resultmsg =  "<p>Search Error</p><p>Please enter a search...</p>" ;

      }

     

    // check for a search parameter

    if (!isset($var)){

      $resultmsg =  "<p>Search Error</p><p>We don't seem to have a search parameter! </p>" ;

      }

    // Build SQL Query for each keyword entered

    foreach ($trimmed_array as $trimm){

         

    // SQL Query

        $query = "SELECT * FROM parts_search WHERE partno LIKE '%". $trimm ."%' OR description LIKE '%". $trimm ."%' ORDER BY partno" ;

        // Execute the query to  get number of rows that contain search kewords

        $numresults=mysql_query ($query);

        $row_num_links_main = mysql_num_rows ($numresults);

     

        // next determine if 's' has been passed to script, if not use 0.

        // 's' is a variable that gets set as we navigate the search result pages.

        if (empty($s)) {

            $s=0;

        }

     

          // now let's get results.

          $query .= " LIMIT $s,$limit" ;

          $numresults = mysql_query ($query) or die ( "Couldn't execute query" );

          $row= mysql_fetch_array ($numresults);

     

          //store record id of every item that contains the keyword in the array we need to do this to avoid display of duplicate search result.

          do{

              $adid_array[] = $row[ 'id' ];

          }while( $row= mysql_fetch_array($numresults));

    } //end foreach

     

    if($row_num_links_main == 0 && $row_set_num == 0){

      $resultmsg = "<p>Search results for:" . $trimmed  ."</p><p>Sorry, your search returned zero results</p>" ;

    }

      //delete duplicate record id's from the array. To do this I will use array_unique function

      $tmparr = array_unique($adid_array);

      $i=0;

      foreach ($tmparr as $v) {

          $newarr[$i] = $v;

          $i++;

      }

    // Display the results returned. But first we will display the search form on the top of the page

     

    ?>

     

    <p align="center"><b><span lang="en-us"><font size="5"><a href="../index.htm">Home</a> </font><font color="#0000FF" size="2">&#9679;</font><font size="5"> <a href="../search.htm">Search</a> </font><font color="#0000FF" size="2">&#9679;</font><font size="5"> <a href="../site_map.htm">Index</a> </font><font color="#0000FF" size="2">&#9679;</font><font size="5">

    <a href="../New%20Parts.htm">New Parts</a> </font><font color="#0000FF" size="2">&#9679;</font><font size="5">

    <a href="../Preowned-Parts.htm">Preowned-Parts</a> </font><font color="#0000FF" size="2">&#9679;</font><font size="5">

    <a href="../christmas_ideasUnder30.htm">Christmas Ideas</a> </font><font color="#0000FF" size="2">&#9679;</font><font size="5">

    <a href="../technical.htm">Technical</a> </font><font color="#0000FF" size="2">&#9679;</font><font size="5"> <a href="../Race_Team.htm">

    Race Team</a> </font><font color="#0000FF" size="2">&#9679;</font><font size="5"> <a href="../winter_rebuild.htm">Winter Rebuild</a> </font><font color="#0000FF" size="2">&#9679;</font><font size="5">

    <a href="../Contact_Us.htm">Contact Us</a></font></span></b></p>

     

     

    <form action="search_form.htm" method="get" name="search">

      <div align="left">

          <input name="q" type="text" value="<?php echo $q; ?>" size="15">

          <input name="search" type="submit" value="Search">

      </div>

    </form>

     

    <?php

    // display what the person searched for.

    if( isset ($resultmsg)){

      echo $resultmsg;

      exit();

    }else{

      echo "Search results for: " . "$var";

      echo "<br>";

      echo "<br>";

    }

    echo "<body background=\"../Logos/GoodVibeLogo1989rev.JPG\">

    <table width=100%>";

    foreach($newarr as $value){

     

    $query_value = "SELECT * FROM parts_search WHERE id = '$value'";

    $num_value=mysql_query ($query_value);

    $row_linkcat= mysql_fetch_array ($num_value);

    $row_num_links= mysql_num_rows ($num_value);

     

    //now let's make the keywods bold. To do that we will use preg_replace function.

      $url = $row_linkcat[ 'url' ];

      $part_num = preg_replace ( "'($var)'si" , "<b>\\1</b>" , $row_linkcat[ 'partno' ] );

      $description = preg_replace ( "'($var)'si" , "<b>\\1</b>" , $row_linkcat[ 'description' ] );

      $reg_price = preg_replace ( "'($var)'si" , "<b>\\1</b>" , $row_linkcat[ 'reg_price' ] );

      $your_price = preg_replace ( "'($var)'si" , "<b>\\1</b>" , $row_linkcat[ 'your_price' ] );

      $weight = preg_replace ( "'($var)'si" , "<b>\\1</b>" , $row_linkcat[ 'weight' ] );

      $vendor = preg_replace ( "'($var)'si" , "<b>\\1</b>" , $row_linkcat[ 'vendor' ] );

     

    $url_f = sprintf ("%s",$url);

     

     

     

    $filename = sprintf("../Product-Scans-NonDesc/%s_small.JPG",$url_f);

    if (file_exists($filename)) {

     

    $pic = getimagesize($filename,$size);

     

     

    if ($pic[0] > $pic[1]) {

    $sizew = (80);

    $sizeh = round($pic[1] / $pic[0] * 80);

    } elseif ($pic[0] < $pic[1]) {

    $sizew = round($pic[0] / $pic[1] * 80);

    $sizeh = (80);

    } else if ($pic[0] == $pic[1]) {

    $sizew = (80);

    $sizeh = (80);

    } else {

    $sizew=$pic[0];

    $sizeh=$pic[1];

    }

    }

    foreach($trimmed_array as $trimm){

        if($trimm != 'b' ){

            $part_num = preg_replace( "'($trimm)'si" ,  "<b>\\1</b>" , $part_num);

            $description = preg_replace( "'($trimm)'si" , "<b>\\1</b>" , $description);

        }

    //end highlight

     

     

    ?>

    <?php echo "<tr><td rowspan=2 width=10%>

    <form action=../moreinfo.php method=post>

    <input type=image src=$filename height=$sizeh width=$sizew>

    <input type=\"hidden\" name=\"url\" value=\"$url_f\">

    <input type=\"hidden\" name=\"partnumber\" value=\"$part_num\">

    <input type=\"hidden\" name=\"desc\" value=\"$description\">

    <input type=\"hidden\" name=\"yourprice\" value=\"$your_price\">

    <input type=\"hidden\" name=\"weight\" value=\"$weight\">

    <input type=\"hidden\" name=\"logo\" value=\"$vendor\"></form></td>

    <input type=\"hidden\" name=\"address\" value=\"$address\"></td>

    <td colspan=2>

    <font size=4 face=Verdana color=red><strong>$part_num</strong></font>&nbsp&nbsp

        <font face=Arial>$description</font>

        <font color=blue size=5 face=Verdana><strong>\$$your_price</strong></font>

        </td></tr>

        <tr><td width=11% align=left>

        <form action=../moreinfo.php method=post>

        <input type=image src=\"../Scans/MOREINFO3.JPG\">

        <input type=\"hidden\" name=\"url\" value=\"$url_f\">

        <input type=\"hidden\" name=\"partnumber\" value=\"$part_num\">

        <input type=\"hidden\" name=\"desc\" value=\"$description\">

        <input type=\"hidden\" name=\"yourprice\" value=\"$your_price\">

        <input type=\"hidden\" name=\"weight\" value=\"$weight\">

        <input type=\"hidden\" name=\"logo\" value=\"$vendor\"></form></td>

          <input type=\"hidden\" name=\"address\" value=\"$address\"></td>

        <td align=left width=79%><form method=POST action=http://www.cartserver.com/sc/cart.cgi>

        <input type=hidden name=item value=\"a-7283^$part_num^$description^$your_price^1^^^^$weight^^\">

        <input type=image name=add src=\"../Scans/BUYNOW3.JPG\">

        <input type=hidden name=pictureurl value=http://www.goodvibesracing.com/Product-Scans/$url_f.JPG></form></td></tr>

        "; ?><?php

       

    }  //end foreach $newarr

     

    echo "</table>";

    //end foreach $trimmed_array

      if($row_num_links_main > $limit){

      // next we need to do the links to other search result pages

          if ($s>=1) { // do not display previous link if 's' is '0'

            $prevs=($s-$limit);

            echo "<div align='left'><a href='$PHP_SELF?s=$prevs&q=$var&catid=$catid'>Previous " .$limit. "</a></div>";

          }

        // check to see if last page

        $slimit =$s+$limit;

          if (!($slimit >= $row_num_links_main) && $row_num_links_main!=1) {

        // not last page so display next link

              $n=$s+$limit;

              echo "<div align='right'><a href='$PHP_SELF?s=$n&q=$var&catid=$catid'>Next " .$limit. "</a></div>";

            }

        }

     

      echo "There were $row_num_links_main returned results";

     

    ?></html>

     

     

     

     

     

    Thanks in advance for any assistance.

     

     

    j8r8c8

×
×
  • 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.