我的INSERT
页面中有一个PHP
查询,按预期执行一次,并且正常工作,正如我想要的那样。
if(!$con->query("INSERT INTO contracts (CID, DATE, NUMBER, TITLE, DESCRIPTION) VALUES ('$cid', '" . $con->real_escape_string($date) . "', '" . $con->real_escape_string($number[$counter]) . "', '" . $con->real_escape_string($title[$counter]) . "', '" . $con->real_escape_string($description[$counter]) . "')"))
{
printf("Error message: %s\n", $con->error);
}
现在,我在同一个CSS
文件中添加以下PHP
以使表格输出更好一点:
<style>
tr:nth-child(even) {
background-color: e5e4e2;
}
</style>
这使得每隔一行变成灰色,很棒......但是等等!现在我的SQL
INSERT
发生了两次。我不知道这些是如何连接的,当我删除CSS
时,INSERT执行一次就像我需要的一样。
是否有一些jiggery pokery我不明白这里? CSS
如何可能影响我的SQL
查询?
为了记录我正在使用 XAMPP ,用于数据库表的PHP版本5.5.15 和 phpMyAdmin 。
编辑:我已经检查了数据库,它正在插入两次。
查询设置为一个按钮,我使用if (isset($_GET['insertIt'])) {// INSERT QUERY
,以便用户点击此按钮时:
<a href = 'testing.php?insertIt=true'><button style="height: 30px; margin-left: 10px; margin-right: 10px">2. Insert New Contracts To 'contracts' Table</button></a>
查询已发送。它在没有CSS
的情况下工作正常,但是,它运行了两次
编辑2:好的,这是我点击按钮时开发者工具的两个截图。我发现它不是CSS
完全省略<style> ... </style>
标签;当我离开时,我得到这个:
当他们在我的PHP
文件中时,我得到了这个:我可以接受这个并尝试获取通过分离文件或完全删除标签来解决它,但我仍然想知道为什么会发生这种情况。我不是专家,但我可以看到有insertIt
的额外呼叫时没有<style>
个标签,并且条目被插入两次
为了记录,我希望能够
答案 0 :(得分:1)
看看你的代码片段当然不够,但是让我建议你解决方案并解释你在这里做的一些事情。
<a><button></button></a>
不是元素是控制元素。我建议将其修复为<button type="submit" style="height: 30px; margin-left: 10px; margin-right: 10px">2. Insert New Contracts To 'contracts' Table</button>
并删除<a>
,您要发布的网址应来自表单操作属性。如果你真的需要使用JavaScript发布一个事件,这是另一个故事,你提供的代码不足以看到你想要实现的目标。以下是我认为你应该做的伪代码:
<?php
if (isset($_POST["...field name..."])) {
... perform INSERT ...
... do redirect to 'testing.php' ...
}
?>
<form action="testing.php" method="post">
... fields ...
<button type="submit" style="height: 30px; margin-left: 10px; margin-right: 10px">2. Insert New Contracts To 'contracts' Table</button>
</form>
什么都不应该发生两次。如果您需要更多帮助 - 请成为我的客人并询问。