2015-02-05 58 views
0

在我工作的地方,我們需要將計算機註冊到數據庫中,然後才使用紙筆,但我被要求創建一個更簡單的方法。所以我做了一個小型的本地主頁。在執行循環中選擇計數中斷

電腦通過標籤和編號進行註冊。與數字相結合的標籤必須是唯一的,我使這個循環增加了輸入的數字直到找到一個自由的數字。

   $checkUnique = openConnection("stationer")->prepare("SELECT COUNT(1) FROM `dator` WHERE `tag_id`=:id AND `tag_number`=:number"); 

       do{ 
        $checkUnique -> bindParam(":number", $_POST['number']); 
        $checkUnique -> bindParam(":id", $_POST['tag']); 
        $checkUnique -> execute(); 
        $checkUniqueResult = $checkUnique->fetchColumn(); 

        if($checkUniqueResult != 0 && empty($searchTagNumber)){ 
         $errors[] = "Non-unique tag and number"; break; 
        } 

        $_POST['number'] = $searchTagNumber == "+" ? $_POST['number']+1 : $_POST['number']-1; 

        if($_POST['number'] <= 0){ 
         $errors[] = "The tag number can't be 0 or lower"; break; 
        } 
       }while($checkUniqueResult > 0); 

但對於一些奇怪的原因,它似乎隨機停止,即使標籤和編號不唯一的,沒有錯誤信息,我不知道是什麼原因造成的。

+0

添加在開始使用error_reporting(E_ALL),看看是否真的有錯誤 – Phate01 2015-02-05 14:35:31

+1

,通常主鍵可以自動增量:你添加一個新的行和數據庫自動遞增主鍵 – Phate01 2015-02-05 14:36:35

+0

@ Phate01但是,這將阻止計算機具有相同的數字,但不同的標籤,我已經有一個ID字段。即使使用'error_reporting(E_ALL)'也沒有錯誤' – Yemto 2015-02-05 14:40:10

回答