Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.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 使用PDO MySQL搜索多个表单字段进行分页_Php_Mysql_Search_Pdo_Pagination - Fatal编程技术网

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">&laquo;</a> <a href="?' . http_build_query($params + ['page' => $page-1]) . '" title="Previous page">&lsaquo;</a>' : '<span class="disabled">&laquo;</span> <span class="disabled">&lsaquo;</span>';

  // The "forward" link
  $nextlink = ($page < $pages) ? '<a href="?' . http_build_query($params + ['page' => $page+1]) . '" title="Next page">&rsaquo;</a> <a href="?' . http_build_query($params + ['page' => $pages]) . '" title="Last page">&raquo;</a>' : '<span class="disabled">&rsaquo;</span> <span class="disabled">&raquo;</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">&laquo;</a> <a href="?' . http_build_query($params + ['page' => $page-1]) . '" title="Previous page">&lsaquo;</a>' : '<span class="disabled">&laquo;</span> <span class="disabled">&lsaquo;</span>';

  // The "forward" link
  $nextlink = ($page < $pages) ? '<a href="?' . http_build_query($params + ['page' => $page+1]) . '" title="Next page">&rsaquo;</a> <a href="?' . http_build_query($params + ['page' => $pages]) . '" title="Last page">&raquo;</a>' : '<span class="disabled">&rsaquo;</span> <span class="disabled">&raquo;</span>';