Example #1
0
function getNumbers()
{
    global $stats;
    $stats['Key numbers'] = array();
    $emoticonSql = getQuery("SELECT shortcut FROM emoticon");
    $shortcuts = array();
    while ($row = mysqli_fetch_assoc($emoticonSql)) {
        $emoticonShortcuts = $row['shortcut'];
        $exploded = explode(' ', $emoticonShortcuts);
        foreach ($exploded as $shortcut) {
            $shortcuts[] = $shortcut;
        }
    }
    $messagesTable = mysqli_fetch_assoc(getQuery("SELECT COUNT(*) FROM message"));
    $messages = $messagesTable['COUNT(*)'];
    $stats['Key numbers']['Number of messages'] = $messages;
    if ($messages > 0) {
        $usersQuery = getQuery("SELECT id, username FROM user");
        $users = array();
        while ($user = mysqli_fetch_assoc($usersQuery)) {
            $users[] = $user;
        }
        $stats['Key numbers']['Messages per user'] = array();
        foreach (array_keys($users) as $user) {
            ////////////////////////////////////////////////////////////////////// HER VISES IKKE NAVNET I JSON-EN
            $id = $users[$user]['id'];
            $userMessagesTable = mysqli_fetch_assoc(getQuery("SELECT COUNT(*) FROM message WHERE author = {$id}"));
            $userMessages = $userMessagesTable['COUNT(*)'];
            $stats['Key numbers']['Messages per user'][$user] = array();
            $stats['Key numbers']['Messages per user'][$user]['Total'] = $userMessages;
            $stats['Key numbers']['Messages per user'][$user]['Percentage'] = printPercentage($userMessages, $messages);
        }
        $skypeTable = mysqli_fetch_assoc(getQuery("SELECT COUNT(*) FROM message WHERE skype = 1"));
        $skype = $skypeTable['COUNT(*)'];
        $stats['Key numbers']['Messages from Skype'] = array();
        $stats['Key numbers']['Messages from Skype']['Total'] = $skype;
        $stats['Key numbers']['Messages from Skype']['Percentage'] = printPercentage($skype, $messages);
        $notSkypeTable = mysqli_fetch_assoc(getQuery("SELECT COUNT(*) FROM message WHERE skype = 0"));
        $notSkype = $notSkypeTable['COUNT(*)'];
        $stats['Key numbers']['Messages not from Skype'] = array();
        $stats['Key numbers']['Messages not from Skype']['Total'] = $notSkype;
        $stats['Key numbers']['Messages not from Skype']['Percentage'] = printPercentage($notSkype, $messages);
        $lengthTable = mysqli_fetch_assoc(getQuery("SELECT AVG(LENGTH(content)) FROM message"));
        $length = $lengthTable['AVG(LENGTH(content))'];
        $stats['Key numbers']['Average message length'] = round($length, 2);
        $stats['Key numbers']['Average message length per user'] = array();
        foreach (array_keys($users) as $user) {
            ////////////////////////////////////////////////////////////////////// HER VISES IKKE NAVNET I JSON-EN
            $id = $users[$user]['id'];
            $userLengthTable = mysqli_fetch_assoc(getQuery("SELECT AVG(LENGTH(content)) FROM message WHERE author = {$id}"));
            $userLength = $userLengthTable['AVG(LENGTH(content))'];
            $stats['Key numbers']['Average message length per user'][$user] = array();
            $stats['Key numbers']['Average message length per user'][$user]['Total'] = round($userLength, 2);
        }
        /*
        		list($mostUsedWords, $mostUsedEmoticons, $numWordsTotal, $numEmoticonsTotal) = mostUsedWordsAndEmoticons(null, $shortcuts);
        		$numWordsUnique = sizeof($mostUsedWords);
        		$content[] = '<br>'.getString('totNoWords').': '.$numWordsTotal.'<br>';
        		$content[] = '<br>'.getString('totNoUniqueWords').': '.$numWordsUnique.'<br>';
        		$content[] = '<br>'.getString('mostUsedWords').':<br>';
        		printWordList($mostUsedWords, false);
        		$numEmoticonsUnique = sizeof($mostUsedEmoticons);
        		$content[] = '<br>'.getString('totNoEmoticons').': '.$numEmoticonsTotal.'<br>';
        		$content[] = '<br>'.getString('totNoUniqueEmoticons').': '.$numEmoticonsUnique.'<br>';
        		$content[] = '<br>'.getString('mostUsedEmoticons').':<br>';
        		printWordList($mostUsedEmoticons, false);
        		foreach ($users as $user) {
        			list($userWords, $userEmoticons, $numWordsUser, $numEmoticonsUser) = mostUsedWordsAndEmoticons($user['id'], $shortcuts);
        			$numWordsUserUnique = sizeof($userWords);
        			$content[] = '<br>'.getString('noWordsFor').' '.$user['username'].': '.$numWordsUser.'<br>';
        			$content[] = '<br>'.getString('noUniqueWordsFor').' '.$user['username'].': '.$numWordsUserUnique.'<br>';
        			$content[] = '<br>'.getString('mostUsedWordsFor').' '.$user['username'].':<br>';
        			printWordList($userWords, false);
        			$numEmoticonsUserUnique = sizeof($userEmoticons);
        			$content[] = '<br>'.getString('noEmoticonsFor').' '.$user['username'].': '.$numEmoticonsUser.'<br>';
        			$content[] = '<br>'.getString('noUniqueEmoticonsFor').' '.$user['username'].': '.$numEmoticonsUserUnique.'<br>';
        			$content[] = '<br>'.getString('mostUsedEmoticonsFor').' '.$user['username'].':<br>';
        			printWordList($userEmoticons, false);
        			$content[] = '<br>'.getString('relMostUsedWordsFor').' '.$user['username'].':<br>';
        			$relWords = array();
        			foreach ($userWords as $k => $v) {
        				if ($mostUsedWords[$k] >= 10) // To avoid words you've used 1-9 times and no one else uses to dominate the list
        					$relWords[$k] = ($v / $numWordsUser) / ($mostUsedWords[$k] / $numWordsTotal);
        			}
        			asort($relWords);
        			$relWords = array_reverse($relWords);
        			printWordList($relWords, true);
        			$content[] = '<br>'.getString('relMostUsedEmoticonsFor').' '.$user['username'].':<br>';
        			$relEmoticons = array();
        			foreach ($userEmoticons as $k => $v) {
        				if ($mostUsedWords[$k] >= 10) // To avoid emoticons you've used 1-9 times and no one else uses to dominate the list
        					$relEmoticons[$k] = ($v / $numEmoticonsUser) / ($mostUsedEmoticons[$k] / $numEmoticonsTotal);
        			}
        			asort($relEmoticons);
        			$relEmoticons = array_reverse($relEmoticons);
        			printWordList($relEmoticons, true);
        		}*/
    }
}
Example #2
0
     $content[] = $userMessages;
     printPercentage($userMessages, $messages);
     $content[] = '<br>';
 }
 $content[] = '<br>';
 $skypeTable = mysqli_fetch_assoc(getQuery("SELECT COUNT(*) FROM message WHERE skype = 1"));
 $skype = $skypeTable['COUNT(*)'];
 $content[] = getString('msgFromSkype') . ': ';
 $content[] = $skype;
 printPercentage($skype, $messages);
 $content[] = '<br>';
 $notSkypeTable = mysqli_fetch_assoc(getQuery("SELECT COUNT(*) FROM message WHERE skype = 0"));
 $notSkype = $notSkypeTable['COUNT(*)'];
 $content[] = getString('msgNotFromSkype') . ': ';
 $content[] = $notSkype;
 printPercentage($notSkype, $messages);
 $content[] = '<br><br>';
 $lengthTable = mysqli_fetch_assoc(getQuery("SELECT AVG(LENGTH(content)) FROM message"));
 $length = $lengthTable['AVG(LENGTH(content))'];
 $content[] = getString('avgMsgLength') . ': ';
 $content[] = round($length, 2);
 $content[] = '<br><br>';
 foreach ($users as $user) {
     $id = $user['id'];
     $userLengthTable = mysqli_fetch_assoc(getQuery("SELECT AVG(LENGTH(content)) FROM message WHERE author = {$id}"));
     $userLength = $userLengthTable['AVG(LENGTH(content))'];
     $content[] = $user['username'] . ': ';
     $content[] = round($userLength, 2);
     $content[] = '<br>';
 }
 list($mostUsedWords, $mostUsedEmoticons, $numWordsTotal, $numEmoticonsTotal) = mostUsedWordsAndEmoticons(null, $shortcuts);