繁体   English   中英

使用 php 在 MYSQL 数据库中仅插入一条记录

[英]Insert Only One Record In MYSQL database using php

我正在做一个项目,我想在特定时间只插入一条记录。

例如:在项目中,客户只给承包商打分一次。(当施工正在进行时)一旦他打分,他就不能再打分了。

我在网上查了一下,但没有找到我要找的东西。

现在我有 2 个想法。

1-一旦评级完成(通过服务器端验证),插入复选框并使其永久禁用。

2- 根据数字(如 7/10)评分并显示它们。

选择哪一个是击球手策略。

代码部分:

CheckBox 解决方案代码(Google 上没有关于服务器端验证的解决方案):

 Checkbox: <input type="checkbox" id="myCheck"> <p>Click the "Try it" button to disable the checkbox.</p> <button onclick="myFunction()">Try it</button> <script> function myFunction() { document.getElementById("myCheck").disabled = true; } </script>

还在stackoverflow上检查了这个(但这不是我要找的):

[示例服务器端解决方案链接][1]

号码解法:

 <table> <tr><td>Rate Your Contractor (Out Of 10)</td><td><input id="intLimitTextBox"></td></tr> </table> <script> function setInputFilter(textbox, inputFilter) { ["input", "keydown", "keyup", "mousedown", "mouseup", "select", "contextmenu", "drop"].forEach(function(event) { textbox.addEventListener(event, function() { if (inputFilter(this.value)) { this.oldValue = this.value; this.oldSelectionStart = this.selectionStart; this.oldSelectionEnd = this.selectionEnd; } else if (this.hasOwnProperty("oldValue")) { this.value = this.oldValue; this.setSelectionRange(this.oldSelectionStart, this.oldSelectionEnd); } else { this.value = ""; } }); }); } // Install input filters. setInputFilter(document.getElementById("intLimitTextBox"), function(value) { return /^\d*$/.test(value) && (value === "" || parseInt(value) <= 10); }); </script>

是否有任何 php 方式(或两种方式)来实现我的问题的解决方案?

PS:我不是 web 开发方面的专家,如果我做错了,请见谅。

也许我误解了; 你的标题是关于 php,但你的问题似乎是符合人体工程学的。

对于评级,当前的演示文稿是一个星星列表,用户在其上单击想要的。

一旦用户提交了评级,我建议您使用相同的演示文稿,没有 javascript 和没有:hover 规则。

也许更改 colors (提交时为黄色,提交时为黑色或灰色且只读)

 $('.star').on('click', function() { var v = $(this).data('value'); $('input[name="rating"]').val(v); $('.star').each(function() { var $this = $(this); $this.toggleClass('active', $this.data('value') <= v); }); });
 /* remove spaces between stars */.stars { font-size:0; }.star::after { content:"☆"; display:inline; font-size: 14pt; padding: 0 5px; } /* by default, only fills active stars */.stars:not(:hover).star.active::after, .stars:hover.star::after { content:"★"; } /* unfill stars following the current hovered */.stars:hover.star:hover ~.star::after { content:"☆"; }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="stars"> <input type="hidden" name="rating" value="" /> <span class="star" data-value="1"></span> <span class="star" data-value="2"></span> <span class="star" data-value="3"></span> <span class="star" data-value="4"></span> <span class="star" data-value="5"></span> </div>

那么,我将尝试回答您的第二个问题,但它有点模糊......

渲染表单:

检查该用户是否存在提交。

如果是,则使用该值将评级呈现为只读。 (如果评级是您拥有的唯一字段,甚至不呈现标签)

如果不是,则显示可提交的表单。

处理提交

在处理提交时,检查该用户是否存在提交。

如果它已经存在,返回一个错误(用户试图欺骗你)否则,添加一个新的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM