网页(用于搜索项目)在数据库中具有项目的默认结果

时间:2019-06-14 15:01:48

标签: php mysql

我正在制作一个“购物网页”只是为了测试SQL注入(我试图模拟Computerphile的“ SQL注入”视频中显示的网页)。搜索数据不是问题,但是默认结果(当我刷新页面时)是数据库中的一项,而不是什么。你能帮助我吗?当我有两个与该搜索查询匹配的项目时,也只有一个项目出现。

一切对我来说在php上都是新的。我看过很多Youtube教程,并尝试制作新的网站代码,只是为了检查我选的教程是否正确。但是对我来说真的没有任何作用。

<?php
$conn = mysqli_connect("localhost", "root", "") or die("Could not 
connect");
mysqli_select_db($conn, "search_products") or die("Could not find the 
database");

$output = '';
$count = 0;

if (isset($_POST['searchq']))
{
    $search_query = $_POST['searchq'];

    $query = mysqli_query($conn, "SELECT * FROM products WHERE name LIKE 
           '%$search_query%'") 
        or die("Could not search for the query");

$count = mysqli_num_rows($query);
if ($count == 0)
{
    $output = 'No Results';
}
else
{
    while ($row = mysqli_fetch_array($query)) {
        $name = $row['name'];
        $price = $row['price'];
        $stock = $row['instock'];

        $output = '<div> '.$name.' '.$price.' '.$stock.' </div>';
        }
    }
}
?>

<-这是我的php代码->

2 个答案:

答案 0 :(得分:0)

更改以下内容以查看是否有帮助
if (isset($_POST['searchq']))if (isset($_POST['searchq']) && !empty($_POST['searchq']))
$ output应该使用“。=”而不是“ =”,您只需将新输出替换为旧输出即可。您应该弄虚作假才能得到所有结果。

答案 1 :(得分:0)

由于下面一行,您只得到一项

$output = '<div> '.$name.' '.$price.' '.$stock.' </div>';

以上行覆盖了先前的值。因此,将其替换为以下内容:

$output .= '<div> '.$name.' '.$price.' '.$stock.' </div>';(观察变量名后的点)。

上面的行将连接每个项目。希望这会有所帮助。