Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在单个页面上显示每个(仅一个)搜索结果_Php_Jquery_Mysql_Search_Pagination - Fatal编程技术网

Php 如何在单个页面上显示每个(仅一个)搜索结果

Php 如何在单个页面上显示每个(仅一个)搜索结果,php,jquery,mysql,search,pagination,Php,Jquery,Mysql,Search,Pagination,您好,我有一个名为“BookPage”的表,列为:“PageText” 我已经在“PageText”列上设置了搜索(请参见下面的代码)。现在,当用户搜索关键字时,所有结果页面都会一个接一个地显示出来 有没有一种方法,如果我可以通过点击某种“下一步”按钮链接,在每个页面上显示每个页面的文本,它们将移动到下一页 form.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/T

您好,我有一个名为“BookPage”的表,列为:“PageText”

我已经在“PageText”列上设置了搜索(请参见下面的代码)。现在,当用户搜索关键字时,所有结果页面都会一个接一个地显示出来

有没有一种方法,如果我可以通过点击某种“下一步”按钮链接,在每个页面上显示每个页面的文本,它们将移动到下一页

form.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Search</title>
<link href="default.css" rel="stylesheet" type="text/css" media="screen" />
</head>

<body>
<?php

// include MySQL-processing classes

require_once 'mysql.php'; 

try{

// connect to MySQL

$db=new MySQL(array('host'=>'','user'=>'','password'=>'','database'=>''));

$searchterm=$db->escapeString($_GET['searchterm']);

$result=$db->query("SELECT * FROM BookPage WHERE (PageText) like \"%$searchterm%\" ");

if(!$result->countRows()){

echo '<div class="maincontainer"><h2>No results were found. Go back and try a new search.</h2></div>'."n";

}

else{

// display search results

echo '<div class="maincontainer"><h2>Your search criteria
returned '.$result->countRows().' results.</h2>'."n";

while($row=$result->fetchRow()){

echo '<div class="rowcontainer"><p><strong>Book Id:
</strong>'.$row['BookId'].'<p><p><strong>Page Id:
</strong>'.$row['PageId'].'</p><p><strong>Page Text:
</strong>'.$row['PageText'].'</p></div>'."n"; 

}

}

echo '</div>';

}

catch(Exception $e){

echo $e->getMessage();

exit();

}

?>
</body>
</html>

搜寻
您好,请看下面的修改代码不工作,您可以让我知道我哪里出错了

修改代码

<?php

// include MySQL-processing classes

require_once 'mysql.php'; 

try{

// connect to MySQL

$db=new MySQL(array('host'=>'',''=>'','password'=>'','database'=>''));

    //page
 if (isset($_GET['page'])) {
    $page_no = $_GET['page'];
    $next_pg = $page_no + 1;
} else {
    $page_no = 0;
    $next_pg = 1;
}

    $searchterm=$db->escapeString($_GET['searchterm']); 
    $result=$db->query("SELECT * FROM BookPage WHERE (PageText) like \"%$searchterm%\" ORDER BY BookId ASC LIMIT 0, $page_no");


if(!$result->countRows()){

echo '<div class="maincontainer"><h2>No results were found. Go back and try a new search.</h2></div>'."n";

}

else{

// display search results

echo '<div class="maincontainer"><h2>Your search criteria returned '.$result->countRows().' results.</h2>'."n";

while($row=$result->fetchRow()){

$searchvalue = implode('<span style="color:green;font-weight:800;background-color:yellow;">'.$_GET['searchterm'].'</span>',explode($_GET['searchterm'],$row['PageText'])); 
echo '<div class="rowcontainer"><p><strong>Book Id:
</strong>'.$row['BookId'].'<p><p><strong>Page Id:
</strong>'.$row['PageId'].'</p><p><strong>Page Text:
</strong>'.$searchvalue.'</p></div>'."n";  
}

}

echo '</div>';

}

catch(Exception $e){

echo $e->getMessage();

exit();

}

?>

您在MySQL中使用LIMIT子句。跟踪PHP中的哪个结果行,并通过链接传递变量以在下一个查询中使用

来自MySQL文档(http://dev.mysql.com/doc/refman/5.1/en/select.html):

LIMIT子句可用于约束SELECT语句返回的行数。LIMIT接受一个或两个数值参数,这两个参数都必须是非负整数常量(使用准备语句时除外)

对于两个参数,第一个参数指定要返回的第一行的偏移量,第二个参数指定要返回的最大行数。初始行的偏移量为0(不是1)


您可以在MySQL中使用LIMIT子句。跟踪PHP中的哪个结果行,并通过链接传递变量以在下一个查询中使用

来自MySQL文档(http://dev.mysql.com/doc/refman/5.1/en/select.html):

LIMIT子句可用于约束SELECT语句返回的行数。LIMIT接受一个或两个数值参数,这两个参数都必须是非负整数常量(使用准备语句时除外)

对于两个参数,第一个参数指定要返回的第一行的偏移量,第二个参数指定要返回的最大行数。初始行的偏移量为0(不是1)


您可以尝试将查询更改为以下内容:

if (isset($_GET['page'])) {
    $page_no = $_GET['page'];
    $next_pg = $page_no + 1;
} else {
    $page_no = 0;
    $next_pg = 1;
}

$result=$db->query("SELECT * FROM BookPage WHERE (PageText) like \"%$searchterm%\" ORDER BY id ASC LIMIT 1, $page_no");
然后插入一个链接,如:

<a href="thispage.php?page=<?php echo $next_pg; ?>">Next page</a>


这将一次得到一个结果,并根据您所在的页面抵消结果。执行此操作时唯一需要做的重要事情是按顺序对结果排序,以便每个查询将结果按相同的顺序排列。例如,order by ID ASC(根据我的示例)。

您可以尝试将查询更改为以下内容:

if (isset($_GET['page'])) {
    $page_no = $_GET['page'];
    $next_pg = $page_no + 1;
} else {
    $page_no = 0;
    $next_pg = 1;
}

$result=$db->query("SELECT * FROM BookPage WHERE (PageText) like \"%$searchterm%\" ORDER BY id ASC LIMIT 1, $page_no");
然后插入一个链接,如:

<a href="thispage.php?page=<?php echo $next_pg; ?>">Next page</a>


这将一次得到一个结果,并根据您所在的页面抵消结果。执行此操作时唯一需要做的重要事情是按顺序对结果排序,以便每个查询将结果按相同的顺序排列。例如,order by ID ASC(根据我的示例)。

您好,请查看我修改的代码,我无法使其正常工作。任何帮助。嗨,请查看我修改的代码,我无法让它工作。任何帮助。嗨,请查看我修改的代码,我无法让它工作。任何帮助。非常感谢。嗨,请看我修改的代码,我无法让它工作。任何帮助。非常感谢。