0

你们可能不明白我的问题,我会尝试进一步解释。

我有一个显示产品信息的站点,它的名称、ID、价格、数量等。现在我以使用 $_GET 变量的方式显示它。

例如,如果我想点击产品页面,那么链接将是

http://localhost/InventorySystem/Employee/Tools/?Item=ProductList

我不需要创建另一个 php 页面,我只需要一个 get 方法,它会显示产品信息。

现在我的问题是,如何用它实现搜索功能?有没有办法让我创建一个搜索功能,比如

?Item=ProductList&Search=SearchTerm

我很难做到。请任何建议。

4

3 回答 3

1

基本上在您的查询字符串中添加另一个变量,就像您在示例中所示?Item=ProductList&Search=SearchTerm:并且只是$_GET['Search']获取值,将其传递给您的 mysql 并使用WHERE与如下复合的子句实现过滤器LIKE

$searchkey = $_GET['Search'];
$result = mysql_query("SELECT * FROM table WHERE column LIKE '%".$searchkey."%'");

这将返回包含您传入的术语的结果$searchkey,例如,如果$searchkey = "ball"thenvolleyball, basketball, baller, basketballvolley都是有效匹配项。

编辑:

您的 html 表单应如下所示,以便能够在查询字符串中传递所需的参数:

<form method="GET">
<input type="hidden" name="Item" value="ProductList" />
Search: <input type="text" name="Search" />
<input type="submit" value="submit" />
</form>
于 2012-07-01T06:07:19.807 回答
0

我假设您只是使用 SQL 语句来查询此页面的产品。

我会检查参数isset($_GET['Search'])是否Search存在。如果是这样,那么我会在 SQL 语句 ( where ... = ...) 中附加一些条件。但请记住清理查询,以避免SQL 注入

示例代码:

$query = "select * from products";
if (isset($_GET['Search']))
  $query .= " where somefield=?";

$mysqli->prepare($query....);
于 2012-07-01T05:39:41.490 回答
0

这可能是这个的一些变化:

<!DOCTYPE html>
<html>
  <body>
<?php
if (isset($_GET['search'])) {
  // Perform the search, probably against a back-end database.
  // For purposes of this pseudocode, I'll assume you store the results in a
  // variable named $search_result that is an array of associative arrays
  // with fields 'id' and 'name'.
?>
    <p style="font-weight: bold;">Search Results</p>
    <table>
    <?php foreach ($search_result as $result): ?>
      <tr>
        <td><a href=$base_url."/Item="<?= urlencode($result['id']) ?>">
          <?= htmlentities($result['name']) ?></a></td>
      </tr>
    </php endforeach; ?>
    </table>
<?php } ?>

  <!-- stuff you display whether page is searched or not goes here -->
  </body>
</html>
于 2012-07-01T05:43:09.960 回答