90 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			90 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
|   | <?php | ||
|  | require_once('database.php'); //connect to your database in this file
 | ||
|  | define("NUMBER_PER_PAGE", 5); //number of records per page of the search results
 | ||
|  | 
 | ||
|  | /**** | ||
|  | * Purpose: paginate a result set | ||
|  | * Precondition: current page, total records, extra variables to pass in the page string | ||
|  | * Postcondition: pagination is displayed | ||
|  | ****/ | ||
|  | function pagination($current_page_number, $total_records_found, $query_string = null) | ||
|  | { | ||
|  |     $page = 1; | ||
|  | 
 | ||
|  |     echo "Page: "; | ||
|  | 
 | ||
|  |     for ($total_pages = ($total_records_found/NUMBER_PER_PAGE); $total_pages > 0; $total_pages--) | ||
|  |     { | ||
|  |         if ($page != $current_page_number) | ||
|  |             echo "<a href=\"?page=$page" . (($query_string) ? "&$query_string" : "") . "\">"; | ||
|  | 
 | ||
|  |         echo "$page "; | ||
|  | 
 | ||
|  |         if ($page != $current_page_number) | ||
|  |             echo "</a>"; | ||
|  | 
 | ||
|  |         $page++; | ||
|  |     } | ||
|  | } | ||
|  | 
 | ||
|  | echo "<h2>Search Members</h2>
 | ||
|  | <form action='{$_SERVER['PHP_SELF']}' method='post'> | ||
|  |     <p>ID: <input type='text' name='id' /></p> | ||
|  |     <p>Username: <input type='text' name='username' /></p> | ||
|  |     <p>Email: <input type='text' name='email' /></p> | ||
|  |     <p align='center'> | ||
|  |         <input type='submit' name='submit' value='Search' /> | ||
|  |     </p> | ||
|  | </form>";
 | ||
|  | 
 | ||
|  | /** | ||
|  | * Display Search Results Below Here | ||
|  | **/ | ||
|  | 
 | ||
|  | //load the current paginated page number
 | ||
|  | $page = ($_GET['page']) ? $_GET['page'] : 1; | ||
|  | $start = ($page-1) * NUMBER_PER_PAGE; | ||
|  | 
 | ||
|  | /** | ||
|  | * if we used the search form use those variables, otherwise look for | ||
|  | * variables passed in the URL because someone clicked on a page number | ||
|  | **/ | ||
|  | $id = ($_POST['id']) ? $_POST['id'] : $_GET['id']; | ||
|  | $username = ($_POST['username']) ? $_POST['username'] : $_GET['username']; | ||
|  | $email = ($_POST['email']) ? $_POST['email'] : $_GET['email']; | ||
|  | 
 | ||
|  | $sql = "SELECT * FROM members WHERE 1=1"; | ||
|  | 
 | ||
|  | if ($id) | ||
|  |     $sql .= " AND id='" . mysql_real_escape_string($id) . "'"; | ||
|  | 
 | ||
|  | if ($username) | ||
|  |     $sql .= " AND username='" . mysql_real_escape_string($username) . "'"; | ||
|  | 
 | ||
|  | if ($email) | ||
|  |     $sql .= " AND email='" . mysql_real_escape_string($email) . "'"; | ||
|  | 
 | ||
|  | //this return the total number of records returned by our query
 | ||
|  | $total_records = mysql_num_rows(mysql_query($sql)); | ||
|  | 
 | ||
|  | //now we limit our query to the number of results we want per page
 | ||
|  | $sql .= " LIMIT $start, " . NUMBER_PER_PAGE; | ||
|  | 
 | ||
|  | /** | ||
|  | * Next we display our pagination at the top of our search results | ||
|  | * and we include the search words filled into our form so we can pass | ||
|  | * this information to the page numbers. That way as they click from page | ||
|  | * to page the query will pull up the correct results | ||
|  | **/ | ||
|  | pagination($page, $total_records, "id=$id&username=$username&email=$email"); | ||
|  | 
 | ||
|  | $loop = mysql_query($sql) | ||
|  |     or die ('cannot run the query because: ' . mysql_error()); | ||
|  | 
 | ||
|  | while ($record = mysql_fetch_assoc($loop)) | ||
|  |     echo "<br/>{$record['id']}) " . stripslashes($record['username']) . " - {$record['email']}"; | ||
|  | 
 | ||
|  | echo "<center>" . number_format($total_records) . " search results found</center>"; | ||
|  | 
 | ||
|  | pagination($page, $total_records, "id=$id&username=$username&email=$email"); | ||
|  | ?>
 |