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 > $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:
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.)