Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php HTML表单>;SQL>;谷歌地图显示-语法+;逻辑_Php_Html_Sql_Forms_Syntax - Fatal编程技术网

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

Php HTML表单>;SQL>;谷歌地图显示-语法+;逻辑,php,html,sql,forms,syntax,Php,Html,Sql,Forms,Syntax,我的想法是以HTML表单填写条目,然后将信息保存到数据库(phpmyadmin)。然后在谷歌地图上显示信息(导出) 但由于语法和逻辑问题,它不起作用 我的HTML表单: <html> <head></head> <body> <form method="POST" action="../BackEnd/ShopSetup.php" name="Setup"> <td>Name</td> &

我的想法是以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页面:

  • ShopSetup.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 = "INSERT INTO locations (`name`, `type`, `address`, `email`, `phone`, `long`, `lat`, `opening`, `closing`)
          VALUES('$name', '$type', '$address', '$email', '$phone', '$long', '$lat', '$opening', '$closing')";
    
    建议对表名和列名使用反勾号,但在使用保留关键字(如
    long
    )时必须使用反勾号

    查看更多信息


    关于第二个问题,请看一下HTML5的输入类型。只需注意,

    没有正当理由再使用
    mysql.*
    API@mistroodplease。它们不再得到维护,而是在使用。改为学习,并使用。我还是不明白是什么问题?“我的地图”正在从phpmyadmin数据库导出信息并将其显示在地图上。。但是,用户不应该手动填写,而应该将其填写为在数据库中存储信息的表单。。。那么,我是否应该将“long、lat、closing、opening”列的名称更改为其他名称@在美国没有误解,但是你所受的计算机安全法规不要求你从不受支持的PHP版本升级吗?当然,这在某种程度上是合法的。这里的许多海报无法控制其服务器,我们已经开始看到效果。PDO没有MySQLIAPI所遭受的漏洞,这是通常推荐的。不过,称这些人为“SQL语法纳粹”来提高人们对这个问题的认识有点误导。我按照你告诉我的@nevos做了,但我仍然有同样的问题。。。错误:您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,了解在第1行的“名称”、“类型”、“地址”、“电子邮件”、“电话”、“液化天然气”、“lat”、“打开”、“关闭”)附近使用的正确语法,以及上面所述的每个变量旁边的语法:“不访问超级全局$\u Post数组Directly@Naz970:尝试回显您拥有的SQL,然后直接在数据库中运行它(例如,在控制台上)。要调试它,请删除除一列之外的所有列,然后查看它是否成功(或者至少如果错误发生了变化,因为您可能违反了约束)。然后逐个添加列,直到找到问题。也许你的一个字符串中有一个未替换的撇号?