Example #1
0
 public static function insertWords($StText, $IDTicket = NULL)
 {
     $StValues = '';
     $StSQL = '';
     if (!empty($StText) || !is_string($StText)) {
         self::$StText = $StText;
     }
     self::WordExplode();
     self::WordValidate();
     self::selectIDWordFromObject();
     $ArNewWord = self::$ArNewWord;
     $ArWordDB = self::$ArWordDB;
     $ArIDWord = self::$ArIDWord;
     if (empty(self::$ArWord) || !is_array(self::$ArWord)) {
         return FALSE;
     }
     if (!empty($ArNewWord) && is_array($ArNewWord)) {
         #
         # First Word
         #
         $StFirstWord = array_shift($ArNewWord);
         $StValues = "('', '{$StFirstWord}', 1)";
         #
         # IDWord - autoincrement, StWord AND 1 to count of use
         #
         foreach ((array) $ArNewWord as $StWord) {
             $StValues .= ", ('', '{$StWord}', 1 )";
         }
         #
         # If the word exists, we'll to increment her count
         #
         $StSQL = "INSERT IGNORE INTO Word VALUES {$StValues};";
         SearchHandler::$DBHandler->setQuery($StSQL);
     }
     if (!empty($ArIDWord) && is_array($ArIDWord)) {
         $StIN = implode(",", $ArIDWord);
         $StSQL = "UPDATE Word SET ItCount = ItCount+1 WHERE IDWord IN ({$StIN});";
         SearchHandler::$DBHandler->setQuery($StSQL);
     }
     #
     # Get all IDWords, including the new words this time
     #
     $ArIDWord = self::getIDWords(self::$ArWord, FALSE);
     if (!empty($IDTicket) && is_numeric($IDTicket)) {
         $ItFirstIDWord = array_shift($ArIDWord);
         $StValues = "( {$ItFirstIDWord}, {$IDTicket} )";
         foreach ((array) $ArIDWord as $IDWord) {
             $StValues .= ", ( {$IDWord}, {$IDTicket} )";
         }
         $StSQL = "REPLACE INTO WordTicket VALUES {$StValues};";
         SearchHandler::$DBHandler->setQuery($StSQL);
     }
     SearchHandler::$DBHandler->commit();
     unset($StFirstWord, $StValues, $StSQL);
 }