2017-10-03 11 views
0

に生成された番号を保存申し訳ありませんが、私はコードとし、英語:)でbeginerています。いくつかの情報をデータベースに保存するコードがあります。データベースには「id」があり、「next_number」列があります。 next_number列のセルを更新するスクリプトを使用する場合。しかし、私はその番号で完全な列を更新したいと思います。 "next_numer"はさまざまです。私はこの "$ department-> next_number + 1"をすべての "id"に保存したいと思います。誰かが私を助けることができますか?PHP、MySQLデータベース

//... 
    public static function generateCode($department_id) 
{ 
    $code = ''; 
    $db = JFactory::getDbo(); 

    $department = RSTicketsProHelper::getDepartment($department_id); 

    if ($department->generation_rule == RST_DEPARTMENT_RULE_RANDOM) 
    { 
     // trick to enter the loop below 
     $found = true; 
     while ($found) 
     { 
      // add the department prefix 
      $code = $department->prefix . '-2017' . strtoupper(self::generateNumber(4)); 

      $query = $db->getQuery(true); 
      $query->select($db->qn('id')) 
       ->from($db->qn('#__rsticketspro_tickets')) 
       ->where($db->qn('code') . '=' . $db->q($code)); 
      $db->setQuery($query); 
      $found = $db->loadResult(); 
     } 
    } 
    elseif ($department->generation_rule == RST_DEPARTMENT_RULE_SEQUENTIAL) 
    { 
     // add the department prefix 
     $code = '2017' . str_pad($department->next_number, 3, 0, STR_PAD_LEFT) . $department->prefix; 

     $department->save(array(
      'id'   => $department->id, 
      'next_number' => $department->next_number + 1 
     )); 
    } 

    return $code; 
} 
+0

$ departmentは「カテゴリ」です。これはRSTicketProコードです。そしてチケットを提出するときには "コード"を得る部門のすべてが1からコードを取得するすべてのdeaprtmentは接頭辞を取得する。ここに2017 001 +部門プレフィックス文字。 Exaple 2017001A、2017002A、2017001B、2017002B、部門開始フォーム1のすべて。そして、すべてのデタメントを1つのシーケンスで使用したい。 2017001A、2017002A、2017003B、2017004B、... –

+0

たとえば方法オンラインあなたはあなたのコードを追加し、いくつかのオンラインPHPはここに例をレンダリング使用することができます:http://sandbox.onlinephpfunctions.com/あなたのhttpに基づく例:このように//sandbox.onlinephpfunctions.com/code/d2f05bbee9de7997078a35af2534530191c5dc1c –

答えて

0

私はあなたの質問を理解することはわかりませんが、あなたはあなたのテーブル内のすべてのレコードの列「next_number」で+1を合計したい場合は、簡単にSQLを使用してそれを行うことができます。例:

UPDATE YOUR_TABLE_NAME SET next_number = next_number + 1; 

それとも、1つのレコードだけを更新したい場合に使用することができます:

UPDATE YOUR_TABLE_NAME SET next_number = next_number + 1 WHERE id=1; 

は、私は助けあなたは少し期待しています。

よろしくお願いいたします。

関連する問題