gpt4 book ai didi

php - CSS 导致 SQL INSERT 执行两次

转载 作者:太空宇宙 更新时间:2023-11-04 12:32:11 25 4
gpt4 key购买 nike

我有一个 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 会按我的需要执行一次。

是否有一些我不理解的技巧? 如何才能CSS可能影响我的SQL查询?

请注意,我正在使用 XAMPPPHP 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>标签;当我把它们排除在外时,我得到这个:enter image description here
当他们在我的PHP文件我得到这个:enter image description here
我可以接受这一点并尝试通过分离文件或完全留下标签来解决它,但我仍然很想知道为什么会这样。我不是专家,但我可以看到有一个额外的电话 insertIt当没有<style>标记和条目被插入两次。
作为记录,我希望能够

  1. 点击按钮
  2. 插入一次条目
  3. 并刷新页面,因为页面也显示了插入的结果。

最佳答案

当然,只看您的代码片段是不够的,但让我向您推荐解决方案并解释一下您在这里所做的事情。

  1. 在这种情况下使用 GET 是不够的。我不知道你接下来要做什么(插入记录后是否有任何重定向?),但我想什么都没有发生。一个好主意是使用 POST,因为您在表中创建行。
  2. 触发表单的 Action 是点击,但点击什么?您在链接中有一个按钮。 <a><button></button></a> not 元素是控制元素。我建议将其修复为 <button type="submit" style="height: 30px; margin-left: 10px; margin-right: 10px">2. Insert New Contracts To 'contracts' Table</button>并摆脱 <a> ,您将发布到的 URL 应该来自 form action 属性。如果您确实需要使用 JavaScript 发布事件,则另当别论,您提供的代码不足以了解您想要实现的目标。
  3. 当有人可能会争辩说,根据 HTTP 协议(protocol)标准,在创建记录后重定向是不好的,但这是在使用表单执行操作后重定向到同一页面的常见做法,以防止因意外刷新页面而创建多个记录。

这是我认为你应该做的伪代码:

<?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>

任何事情都不应发生两次。如果您需要更多帮助 - 请成为我的客人并询问。

关于php - CSS 导致 SQL INSERT 执行两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27565548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com