gpt4 book ai didi

php - 如何使用PHP和mysql制作搜索页面?

转载 作者:行者123 更新时间:2023-11-29 11:50:05 24 4
gpt4 key购买 nike

我一直在尝试建立一个网站来销售书籍,其中我有一个包含书籍及其作者的 mysql 数据库。我希望在主页上添加一个搜索栏(其中使用基本的 PHP 和 mysql 打印所有书籍的列表)。

我仍然不确定如何去做,所以这就是我打算做的:

  1. 连接到数据库
  2. 使用 POST 方法进行搜索查询并对 search.php 执行操作,例如,假设条目是“社会变革”
  3. 在search.php中,使用explode()将查询语句分解为单词/关键字并创建一个数组。因此查询变成一个包含 [0] => 'social' 和 [1] => 'change' 的数组
  4. 在我现有的数据库中,假设我有一本名为“社会变革动态”的书的条目。我在数据库中创建了另一列,其中包含与该书相对应的(动态、社会、变化)数组。 (((如何使用mysql做到这一点?))))
  5. 使用 SQL 查询从书名数组包含我的关键字数组的任何元素的位置选择条目。
  6. 如果找到任何结果,请打印。

这是我所做的:来自index.php

    <form action= 'search.php' method='post'>
<input type='text' name='q'>
<input type='submit'>
</form>

来自 search.php,连接到数据库后:

$q = $_POST["q"];
$keys = explode(" ", $q);

$x = 0;
echo "<table>";
while ($x < sizeof($keys))
{
$req = "SELECT * FROM book WHERE name= '$keys[$x]'";
$run = mysqli_query($connect,$req)
or die('Query req failed: ' . mysql_error());
while
($line = mysqli_fetch_array($run, MYSQL_ASSOC))
{
echo "<tr>";
echo "<td>" . $line['name'] . "</td>";
echo "</tr>";

}
$x = $x + 1;
}
echo "</table>";

我面临的问题是我没有得到任何输出。我尝试了不同的输入,但无法找出错误。

我想问的是:1. 我这样做的逻辑正确吗?考虑到我是 PHP 和 mysql 的新手,这种搜索方式在逻辑上是否正确?如果没有,您能为这个简单的网络项目建议任何简单/基本的方法吗?

  • 如果我打算做的事情是正确的,你能帮我找出我哪里出错了吗?

  • 我还没有找到第 4 步中的 HOW 部分,即在 mysql 数据库中创建另一列,该列由一个数组组成,该数组的元素基本上是从书名中分割出来的单词。例如,A 栏:“社会变革的动态”B 栏:(动态、社会、变化)

  • 最佳答案

    您需要使用like ,而不是 == 需要匹配。 like 用于表示like 值。例如,如果数据库包含 firetruck 并且您这样做了

    select * from table where column = 'fire'

    你不会得到任何结果。但是如果你这样做了

    select * from table where column like '%fire%'

    您将获得消防车行。

    %s 允许该侧的任何内容,例如:

    select * from table where column like '%fire'

    找不到 firetruck,因为它只会找到以 fire 结尾的记录。

    不过,您可能想了解全文搜索。 http://dev.mysql.com/doc/refman/5.7/en/fulltext-search.html

    您也不应该将用户输入直接传递到 SQL 查询中。使用准备好的语句。

    http://php.net/manual/en/mysqli.quickstart.prepared-statements.php
    https://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet#Defense_Option_1:_Prepared_Statements_.28Parameterized_Queries.29
    How can I prevent SQL injection in PHP?

    关于php - 如何使用PHP和mysql制作搜索页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34244928/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com