PHP搜索脚本不会正确返回页面

时间:2010-11-13 17:32:42

标签: php mysql database search

由于没有其他主题使用我使用的脚本,我需要认真的帮助。我目前正在处理一个工作项目,我的搜索功能正确返回第一页,但是当我点击Next 10时,它什么也没做! 请注意我删除了一些代码,但留下了无用的注释,但这不会影响脚本的性能! 这是我的代码,但当然我已经过滤了用户名和密码: <

<?php

  // Get the search variable from URL

  $var = @$_GET['q'] ;
  $error = $_GET['error'];
  $permnull = @$_GET['nullpermitted'] ;
  $AdminorSuper = "";
  $trimmed = trim($var); //trim whitespace from the stored variable


if(!$session->isSuperuser()){
 $AdminorSuper = "Admin";
}

else
{
 $AdminorSuper = "";
}
// rows to return
$limit=10; 

if($error=="errdel")
{
 echo "<p>Only Admins and Superusers may delete customers. </p>";
}
if($error=="errcret")
{
 echo "<p>Only Admins and Superusers may create customers. </p>";
}
// check for a search parameter
if (!isset($var))
  {
  echo "<p>We dont seem to have a search parameter!</p>";
  exit;
  }

//connect to your database ** EDIT REQUIRED HERE **
mysql_connect("*FILTERED*","*FILTERED*","*FILTERED*"); //(host, username, password)


mysql_select_db("*FILTERED*") or die("Unable to select database"); 

// Build SQL Query  
$query = "select * from customer where Surname OR TitleName OR PostCode like \"%$trimmed%\"  
  order by Surname"; 

 $numresults=mysql_query($query);
 $numrows=mysql_num_rows($numresults);



if ($numrows == 0)
  {
  if($trimmed=="")
  {
  echo "No customers are in the database!";
  }
  else
  {
  echo "<h2>Results</h2>";
  echo "<p>Sorry! No Results were found for: &quot;" . $trimmed . "&quot;.</p>";
  }
  }

// next determine if s has been passed to script, if not use 0
  if (empty($s)) {
  $s=0;
  }

// get results
  $query .= " limit $s,$limit";
  $result = mysql_query($query) or die("Couldn't execute query");

// display what the person searched for
if($var=="")
{
 echo "<p>Viewing all Results</p>";
}
else
{
echo "<p>Results for: &quot;" . $var . "&quot;</p>";
}
// begin to show results set
echo "";
$count = 1 + $s ;

// now you can display the results returned
  echo '<table border="1">';
  echo "<tr><td><b>Surname</b></td><td><b>Title/Name</b></td><td><b>Email</b></td><td><b>Telephone</b></td><td><b>Edit</b></td><td><b>Del</b></td></tr>\n";
  while ($row= mysql_fetch_array($result)) {
  $Surname = $row["Surname"];
  $Title = $row["TitleName"];
  $Email = $row["Email"];
  $Telephone = $row["Telephone"];
  $id = $row["id"];
  echo '<tr><td>' .$Surname.'</td><td>'.$Title.'</td><td>'.$Email.'</td><td>'.$Telephone.'</td><td>' . '<a href="updateCustomerForm' . $AdminorSuper. '.php?id='.$id.'">[EDIT]</a></td>'.'<td>'. '<a href="deleteCustomer.php?id='.$id.'">[x]</a></td>'. '</tr>';
  $count++ ;
  }

$currPage = (($s/$limit) + 1);

//break before paging
  echo "<br />";

  // next we need to do the links to other results
  if ($s>=1) { // bypass PREV link if s is 0
  $prevs=($s-$limit);
  print "&nbsp;<a href=\"$PHP_SELF?s=$prevs&q=$var\">&lt;&lt; 
  Prev 10</a>&nbsp&nbsp;";
  }

// calculate number of pages needing links
  $pages=intval($numrows/$limit);

// $pages now contains int of pages needed unless there is a remainder from division

  if ($numrows%$limit) {
  // has remainder so add one page
  $pages++;
  }
echo "</table>";
// check to see if last page
  if (!((($s+$limit)/$limit)==$pages) && $pages!=1) {

  // not last page so give NEXT link
  $news=$s+$limit;

  echo "&nbsp;<a href=\"$PHP_SELF?s=$news&q=$var\">Next 10 &gt;&gt;</a>";
  }

$a = $s + ($limit) ;
  if ($a > $numrows) { $a = $numrows ; }
  $b = $s + 1 ;
  echo "<p>Showing results $b to $a of $numrows</p>";

?>

2 个答案:

答案 0 :(得分:2)

代码似乎缺少$s=$_GET['s'];

祝你好运:)

答案 1 :(得分:0)

你要做的是分页,有很多关于如何用PHP和mysql实现它的好指南。例如,http://www.phpfreaks.com/tutorial/basic-pagination