HTML 表单> SQL > 谷歌地图显示 - 语法 + 逻辑



我的想法是填写HTML表单中的条目,然后将信息保存到数据库(phpmyadmin)。然后在谷歌地图上显示信息(导出)。

但由于语法和逻辑问题,它不起作用。

我的 HTML 表单:

<html>
<head></head>
<body>
    <form method="POST" action="../BackEnd/ShopSetup.php" name="Setup">
    <td>Name</td>
    <td>
        <input type="text" name="name"></td>
    </tr>
     <tr>
         <td>type</td>
         <td>
             <input type="varchar" name="type"></td>
     </tr>
    <tr>
        <td>Address</td>
        <td>
            <input type="text" name="address"></td>
    </tr>
    <tr>
        <td>Email</td>
        <td>
            <input type="email" name="email"></td>
    </tr>
    <tr>
        <td>Phone Number</td>
        <td>
            <input type="varchar" name="phone"></td>
    </tr>
    <tr>
        <td>longitude</td>
        <td>
            <input type="float" name="long"></td>
    </tr>
    <tr>
        <td>latitude</td>
        <td>
            <input type="float" name="lat"></td>
    </tr>
    <tr>
        <td>Opening Hour</td>
        <td>
            <input type="varchar" name="opening"></td>
    </tr>
    <tr>
        <td>Closing Hour</td>
        <td>
            <input type="varchar" name="closing"></td>
    </tr>
    <tr>
        <td>
            <input id="button" type="submit" name="submit" value="Setup"></td>
    </tr>
    <tr></tr>
    </form>
</body>
</html>

我在后端的PHP页面:

  1. 商店设置.php

         <?php
    
         include ("../Connections/Connection.php");
    
         if (isset($_POST["submit"]))
      {
          $name = $_POST["name"];   
          $type = $_POST["type"];
          $address = $_POST["address"];
          $email = $_POST["email"];
          $phone = $_POST["phone"];
          $long = $_POST["long"];
          $lat = $_POST["lat"];
          $opening = $_POST["opening"];
          $closing = $_POST["closing"];
      $sql = "INSERT INTO locations (name, type, address, email, phone, long, lat, opening, closing)
              VALUES('$name', '$type', '$address', '$email', '$phone', '$long', '$lat', '$opening', '$closing')";
      $query = mysql_query($sql);
      if (!$query)
      {
          die ("Error : " .  mysql_error());
      }
      if(empty($name) || empty($type) || empty($address) || empty($email) || empty($phone) || empty($long) || empty($lat) || empty($opening) || empty($closing))
          {
          echo "You did not fill out the required fields.";
          die();  // Note this
          }
      echo "<center></center>";
      }
      ?>
             <h1> Your order is complete!</h1>
                    <p class="intro-text">You will see your shop on the map soon<br></p>
                    <center> 
      <h3> <a href="../index.php"> go to home page  </a></h3>
      </center>
    

但是当我提交表格时,我得到:

错误

:您的SQL语法有错误;请查看与您的MySQL服务器版本相对应的手册,了解在'long,lat,open,closesing)附近使用的正确语法第 1 行的值("

"、"、"、")"

保存打开/关闭时间的最佳 HTML 属性是什么:周、天、小时、分钟、秒?

您应该在列名两边使用反引号 (')。这样:

$sql = "INSERT INTO locations (`name`, `type`, `address`, `email`, `phone`, `long`, `lat`, `opening`, `closing`)
      VALUES('$name', '$type', '$address', '$email', '$phone', '$long', '$lat', '$opening', '$closing')";

建议对表名和列名使用反引号,但在使用保留关键字(如 long )时必须使用反引号。

有关详细信息,请查看此讨论。

关于你的第二个问题,看看HTML5 datetime输入类型。请注意,并非所有浏览器都支持它

最新更新