Need help with search script.

Discussion in 'PHP' started by sitescripts, Jan 19, 2013.

  1. #1
    Hey Can any one make this script show paged results? Only 10 at a time!
    Please help.

    <? 
     include "header.php";
    
      mysql_connect(localhost,"resalem1_gb","1qwerty");
     @mysql_select_db("resalem1_gb") or die( "Unable to select database");
    
    
        $query = $_GET['query'];
        // gets value sent over search form
         
        $min_length = 3;
        // you can set minimum length of the query if you want
         
        if(strlen($query) >= $min_length){ // if query length is more or equal minimum length then
             
            $query = htmlspecialchars($query);
            // changes characters used in html to their equivalents, for example: < to &gt;
             
            $query = mysql_real_escape_string($query);
            // makes sure nobody uses SQL injection
             
            $raw_results = mysql_query("SELECT * FROM  guestbook
                WHERE (`price` LIKE '%".$query."%') OR (`username` LIKE '%".$query."%') OR (`titleg` LIKE '%".$query."%') OR 
    
    (`descriptiong` LIKE '%".$query."%')") or die(mysql_error());
                 
            // * means that it selects all fields, you can also write: `id`, `title`, `text`
            // articles is the name of our table
             
            // '%$query%' is what we're looking for, % means anything, for example if $query is Hello
            // it will match "hello", "Hello man", "gogohello", if you want exact match use `title`='$query'
            // or if you want to match just full word so "gogohello" is out use '% $query %' ...OR ... '$query %' ... OR ... '% 
    
    $query'
             
            if(mysql_num_rows($raw_results) > 0){ // if one or more rows are returned do following
                 
                while($results = mysql_fetch_array($raw_results)){
                // $results = mysql_fetch_array($raw_results) puts data from database into array, while it's valid it does the 
    
    loop
                 
                    echo "<p><h3>".$results['titleg']."</h3>".$results['price']."</p>";
                    echo "<p> <a href=\"".$website_url."g.php?user=".$results['username']."\"> Click Here to go there now! 
    
    </a>";
                    // posts results gotten from database(title and text) you can also show id ($results['id'])
                }
                 
            }
            else{ // if there is no matching rows do following
                echo "No results";
            }
             
        }
        else{ // if query length is less than minimum
            echo "Minimum length is ".$min_length;
        }
    ?>
    </body>
    
    
    
    <?php
    include "footer.php";
    
    ?>
    
    
    
    
    
    
    PHP:

     
    sitescripts, Jan 19, 2013 IP
  2. EricBruggema

    EricBruggema Well-Known Member

    Messages:
    1,740
    Likes Received:
    28
    Best Answers:
    13
    Trophy Points:
    175
    #2
    shure... we can....
     
    EricBruggema, Jan 20, 2013 IP
  3. Rukbat

    Rukbat Well-Known Member

    Messages:
    2,908
    Likes Received:
    37
    Best Answers:
    51
    Trophy Points:
    125
    #3
    You'll have to send this script the limits, but MySQL accepts
    LIMIT start, amount
    Code (markup):
    So you can use SELECT x WHERE y LIMIT start, 10

    to select 10 records starting at the record number you give it. (Records start at number 0, not 1.)

    (The rest of the SELECT statement is what you have now - just add the LIMIT part and keep track of the start number. For example, the second 10 records would start at 9, the next 10 at 19, etc.)
     
    Rukbat, Jan 20, 2013 IP