【发布时间】:2015-12-12 21:00:49
【问题描述】:
我一直在尝试建立一个网站来销售书籍,其中我有一个包含书籍及其作者的 mysql 数据库。 我希望在主页上添加一个搜索栏(使用基本的 PHP 和 mysql 打印所有书籍的列表)。
我仍然不确定如何去做,所以这是我打算做的事情:
- 连接数据库
- 使用 POST 方法进行搜索查询,然后对 search.php 执行操作,例如,假设条目是“社会变革”
- 在 search.php 中,使用explode() 将查询语句分解为单词/关键字,并将其组成一个数组。所以查询变成了一个数组,包含 [0] => 'social' 和 [1] => 'change'
- 在我现有的数据库中,假设我有一本名为“社会变革动态”的书的条目。我在我的数据库中创建了另一列,其中包含与那本书相对应的(动态、社会、变化)数组。 ((((如何使用mysql?))))
- 使用 SQL 查询从书名数组包含我的关键字数组的任何元素的位置选择条目。
- 打印,如果找到任何结果。
这是我所做的: 来自 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 的新手这一事实,在逻辑上进行搜索是否正确?如果没有,您能否为这个简单的 Web 项目建议任何简单/基本的方法?
如果我打算做的事情是正确的,你能帮我弄清楚我在哪里犯错了吗?
我还没有找到步骤 4 中的 HOW 部分,即在 mysql 数据库中创建另一个列,该列由一个数组组成,其中的元素基本上是从书名中分离出来的单词。 例如,A 栏:“社会变革的动态” B 列:(动态、社会、变化)
【问题讨论】:
-
你能专注于 1 或 2 个狭隘的问题吗