search.php:
<?php
include 'incl/db.php'; // Include the database
// Set the page, use one if the get page is not a number or is negative
if(!isset($_GET['page']) || !ctype_digit($_GET['page']))
$page = 1;
else
$page = $_GET['page'];
// Set the maximum number of results
$max = 10;
// Set the start location (when viewing the next page)
$limit = ($page * $max) - $max;
$q = trim(mysql_real_escape_string($_GET['q'])); // Make a safe string
// Make a query, (change "code" and "name" to your column names)
$query = "SELECT SQL_CALC_FOUND_ROWS *,
MATCH(code) AGAINST ('$q' IN BOOLEAN mode) AS score1,
MATCH(name) AGAINST ('$q' IN BOOLEAN mode) AS score2
FROM snippets
WHERE
MATCH(code,name) AGAINST ('$q' IN BOOLEAN mode)
ORDER BY score1 DESC, score2 DESC LIMIT $limit, $max";
// Perform the query
$sql = mysql_query($query);
// Find how many results would have been returned if there wasn't a limit
$result_count = mysql_query("SELECT FOUND_ROWS()")or die(mysql_error());
// Get the number
$total = mysql_fetch_array($result_count);
// Search the array for the total
$totalrows = $total[0];
// Calculate the number of pages, if it is a decimal, then there are
// more reusults, but that number is less than our $max (total number of results
// to display on the page)
$pages = ceil($totalrows / $max);
// Display the results...
if(mysql_num_rows($sql) > 0){
echo '<p>Found <b>'.$totalrows.'</b> results for <b>"'.htmlentities($_GET['q']).'"</b></p>';
$i = $limit + 1;
while($row = mysql_fetch_array($sql)){
echo '<p>'.$i.'. <a href="view.php?id='.$row['id'].'">'.$row['name'].'</a></p>';
$i++;
}
}else{
// No results were found
echo '<h2>No Results Found!</h2>';
}
// Display the page numbers (if there is more than one page)
if($pages > 1){
echo '<div style="padding:10px;">';
for($i = 1;$i<$pages+1;$i++){
if($i == $page)
echo '<span class="page" style="padding:10px;">'.$i.'</span>';
else
echo '<a style="padding:10px;" href="'.$_SERVER['PHP_SELF'].'?q='.$_GET['q'].'&page='.$i.'">'.$i.'</a>';
}
echo '<span style="clear:both;display:block;font-size:1px;"> </span>';
echo '</div>';
}
?>
view.php:
<?php
include 'incl/db.php'; // Include the database
$id = mysql_real_escape_string($_GET['id']);
$sql = mysql_query("SELECT * FROM snippets WHERE id = '$id'");
if(mysql_num_rows($sql) == 1){
$row = mysql_fetch_array($sql);
echo '<h1>'.$row['name'].'</h1>';
echo '<div>'.$row['code'].'</div>';
}
?>