将用户输入与mysql数据库匹配,并根据用户输入提供不同的结果

时间:2017-03-22 20:25:40

标签: php mysql database match

我有这个表单页面

<!DOCTYPE html>
<html>
    <head>
        <title>Navigation</title>
    </head>

<body>

<form name="form" method="POST" action="capstone.php">
    <fieldset>
        <p>Where are you trying to go? </p>
        <input type="roominput" name="mapinput" id="mapinput">
<br />
<br />
<input type="submit" name="submit" value="Submit">
</fieldset>
</form>
</body>
</html>

我有这个PHP代码,它将表单页面中的用户输入与sql数据库匹配,如果房间存在则回声。

如何更改此代码以匹配表单页面中的用户输入和数据库,并根据表单中的用户输入发布不同的图像?

 <?php
$conn=mysqli_connect("localhost","xxx","xxx","xxx");
if (mysqli_connect_errno())
{
echo "Connect failed: " . mysqli_connect_error();
exit();
}

if (isset($_POST['mapinput']))
{
 $map = $_POST['mapinput'];
 $query = "SELECT * FROM `Rooms` WHERE `Room Number` ='$map'";
 $result = mysqli_query($conn,$query); 

     if (mysqli_num_rows($result))
        {
           echo 'Room already exists';
        } 

else 
{
echo 'Room does not exist, please try again.';
}

}

mysqli_close($conn);

?>

2 个答案:

答案 0 :(得分:2)

type="roominput"这不是有效的输入类型。

如果您打算使用整数,则需要"text""number"。后者是HTML5类型。

参考:

您的代码也可以使用SQL注入,使用预准备语句:

注意:如果输入是整数,那么使用$map = (int)$_POST['mapinput'];就好了。

但是,您应首先检查它是否是整数。有很多方法可以检查这一点,仅举几例:

  

&#34;如何更改此代码,以便将表单页面中的用户输入与数据库相匹配,并根据表单中的用户输入发布不同的图像?&#34;

您可以使用whileforeach循环获取成功查询的结果。

然后,回显您想要显示的图像。图像的来源取决于它的位置,无论是来自数据库中的文件夹还是BLOB;那部分是未知的,完全是两种不同的方法。

如果来自服务器上保存的文件:

<img src="/path/to/images/image_x.jpg">

或使用$image = $row['image_in_column'];循环中的while

<img src="/path/to/images/$image">

作为BLOB:

更多例子:

答案 1 :(得分:0)

在这里,我可以给你这样的答案,因为我不知道数据库表列的名称。

Mysqli:capstone.php

<?php

$conn = mysqli_connect("localhost","xxx","xxx","xxx");

if (isset($_POST['submit']))
{
    if (isset($_POST['mapinput']))
    {
        $map = mysqli_real_escape_string($conn, $_POST['mapinput']);

        $query = "SELECT * FROM Rooms WHERE Room Number = '$map'";
        $result = mysqli_query($conn,$query); 

        // check if query returns any result
        if (mysqli_num_rows($result) > 0)
        {
            $data = mysqli_fetch_array($result);

            // loop through yours result displaying data u want
            // and lets say u have image path stored in database
            foreach ($data as $dat)
            {
                echo $dat['column_name'] . ' <img src="'.$dat['image_url'].'"><br />';
            }
        }
        else
        {
            echo 'No results found.';
        } 
    }
    else 
    {
        echo 'Please enter room name.';
    }
}

mysqli_close($conn);

?>

表格:

<form method="POST" action="capstone.php">
<fieldset>
    <p>Where are you trying to go? </p>
    <input type="text" name="mapinput" id="mapinput">
    <input type="submit" name="submit" value="Submit">
</fieldset>
</form>