Php 使用PDO MySQL搜索多个表单字段进行分页
我花了很长时间才让这个脚本生效。我有两个搜索字段。这就是产生不同查询的原因。我无法使分页与搜索脚本一起工作。分页通常会返回所有记录,当单击“下一步”按钮时,我会看到一个空白页。 任何帮助都将不胜感激 这是表格Php 使用PDO MySQL搜索多个表单字段进行分页,php,mysql,search,pdo,pagination,Php,Mysql,Search,Pdo,Pagination,我花了很长时间才让这个脚本生效。我有两个搜索字段。这就是产生不同查询的原因。我无法使分页与搜索脚本一起工作。分页通常会返回所有记录,当单击“下一步”按钮时,我会看到一个空白页。 任何帮助都将不胜感激 这是表格 <form action="" accept-charset="UTF-8" method="get"> <div style="float: left; margin-right: 50px;"> <label for="edit-field-oem-v
<form action="" accept-charset="UTF-8" method="get">
<div style="float: left; margin-right: 50px;">
<label for="edit-field-oem-value">OEM</label> <br />
<input type="text" maxlength="128" name="field_oem_value" size="30" value="" class="form-text" />
</div>
<div style="float: left;">
<label for="edit-field-oem-pn-value">OEM P/N</label> <br />
<input type="text" maxlength="128" name="field_oem_pn_value" size="30" value="" class="form-text" />
<input type="submit" id="edit-submit-Products-view" value="Search" class="form-submit" />
</div>
</form>
单击任何分页链接后,您的field_oem_值和field_oem_pn_值参数将丢失。您需要在链接的href中明确指定它们(或保存在会话中) 这样做:
$params = [
'field_oem_value' => $oemSearch,
'field_oem_pn_value' => $oempnSearch
];
// The "back" link
$prevlink = ($page > 1) ? '<a href="?'. http_build_query($params + ['page' => 1]) .'" title="First page">«</a> <a href="?' . http_build_query($params + ['page' => $page-1]) . '" title="Previous page">‹</a>' : '<span class="disabled">«</span> <span class="disabled">‹</span>';
// The "forward" link
$nextlink = ($page < $pages) ? '<a href="?' . http_build_query($params + ['page' => $page+1]) . '" title="Next page">›</a> <a href="?' . http_build_query($params + ['page' => $pages]) . '" title="Last page">»</a>' : '<span class="disabled">›</span> <span class="disabled">»</span>';
$params=[
“字段\u oem\u值”=>$oemSearch,
“字段\u oem\u pn\u值”=>$oempnSearch
];
//“反向”链接
$prevlink=($page>1)?“”:&拉阔&伊萨库;
//“向前”链接
$nextlink=($page<$pages)?“”:&rsaquo&",;
这在PHP5.3.3上似乎不起作用?还是我遗漏了什么?使用PHP5.5.12在WAMP上工作得很好。.日志文件指出,$params开始的那一行有一个意外的[a]。好的,不用担心,我必须重写几个项目。谢谢!短数组符号[]是在PHP5.4中实现的。您需要在以前的版本中改用array()。
if ($oemSearch != "" && $oempnSearch == "") {
$total = $dbh->query("select COUNT(*) from parts_search WHERE oem LIKE '%$oemSearch%'")->fetchColumn();
}
if ($oemSearch == "" && $oempnSearch != "") {
$total = $dbh->query("select COUNT(*) from parts_search WHERE oem_pn LIKE '%$oempnSearch%'")->fetchColumn();
}
if ($oemSearch != "" && $oempnSearch != "") {
$total = $dbh->query("select COUNT(*) from parts_search WHERE oem LIKE '%$oemSearch%' OR oem_pn LIKE '%$oempnSearch%'")->fetchColumn();
}
$params = [
'field_oem_value' => $oemSearch,
'field_oem_pn_value' => $oempnSearch
];
// The "back" link
$prevlink = ($page > 1) ? '<a href="?'. http_build_query($params + ['page' => 1]) .'" title="First page">«</a> <a href="?' . http_build_query($params + ['page' => $page-1]) . '" title="Previous page">‹</a>' : '<span class="disabled">«</span> <span class="disabled">‹</span>';
// The "forward" link
$nextlink = ($page < $pages) ? '<a href="?' . http_build_query($params + ['page' => $page+1]) . '" title="Next page">›</a> <a href="?' . http_build_query($params + ['page' => $pages]) . '" title="Last page">»</a>' : '<span class="disabled">›</span> <span class="disabled">»</span>';