簡體   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