Php HTML表单>;SQL>;谷歌地图显示-语法+;逻辑
我的想法是以HTML表单填写条目,然后将信息保存到数据库(phpmyadmin)。然后在谷歌地图上显示信息(导出) 但由于语法和逻辑问题,它不起作用 我的HTML表单: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>
<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页面:
<?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,然后直接在数据库中运行它(例如,在控制台上)。要调试它,请删除除一列之外的所有列,然后查看它是否成功(或者至少如果错误发生了变化,因为您可能违反了约束)。然后逐个添加列,直到找到问题。也许你的一个字符串中有一个未替换的撇号?