0

我的数据库包含一个包含 30 个用户名称的表。我有以下 html 表单,它是一个搜索表单:

<form method="POST" name="go" action="search_form_all.php"  >
  <input name="value" type="text" id="search_form_1" size="65"  />
  <input type="submit" value="" name="submit" />
</form> 

然后使用以下 php 脚本,结果表单将显示我数据库中的所有名称:

if(isset($_POST['value'])== true && empty($_POST['value']) == false){

$value = mysql_real_escape_string($_POST['value']);

$name_and_surname = explode(" ", "$value ");

$name = $name_and_surname[0];
$surname = $name_and_surname[1]; 

$query = mysql_query(" SELECT `name`, `surname`, `email`, `user_id` FROM users WHERE (surname LIKE '$name%' AND name LIKE '$surname%') OR (surname LIKE '$surname%' AND name LIKE '$name%') LIMIT 10  ");

while($run = mysql_fetch_array($query)){
  $name = $run['name'];
  echo" $name  "; 
}

通过执行上面的代码,我得到了前 10 个名字(因为在我的 sql 查询中有 10 个限制)。我想要的只是有一个按钮,当用户按下它以提取其余 10 个名称,然后提取其余 10 个名称,直到提取所有 30 个名称。我怎样才能做到这一点?

4

3 回答 3

0

sql LIMIT 函数可以处理多个数字,例如 LIMIT 10, 20 将输出第 10 到第 20 个结果。

我相信您可以通过您的表格找出一些东西并发布以利用它来发挥您的优势

有关 SQL LIMIT 的更多信息:http: //php.about.com/od/mysqlcommands/g/Limit_sql.htm

于 2013-07-03T11:13:53.717 回答
0
SELECT `name`, `surname`, `email`, `user_id` 
FROM users 
WHERE (surname LIKE '$name%' AND name LIKE '$surname%') 
OR (surname LIKE '$surname%' AND name LIKE '$name%') 
LIMIT $offset, 10;

在您的情况下,偏移量可以是 1,11,21

于 2013-07-03T11:13:59.327 回答
0

您可以使用网络术语中称为PAGINATION的经典解决方案。它只是获取大量数据并打印出指向下一页的链接。http://www.phpfreaks.com/tutorial/basic-pagination可能会有所帮助

您可以使用该值并根据需要进行操作。例如,您可以在 LIMIT 语句中使用它。

于 2013-07-03T11:23:18.997 回答