使用Mysql和PHP计算用户从表单输入的相同单词?

时间:2009-09-21 20:52:35

标签: php mysql

我想知道是否有人从php表单输入一个单词到数据库中如何计算有多少人在数据库中输入了相同的单词以及如何不为这个单词创建一个完整的唯一id当用户输入相同的单词时,对该单词的计数。

3 个答案:

答案 0 :(得分:1)

您可以使用以下架构创建表wordsCount。

id | word | count
------------------
1  | word1 | 15
2  | word2 | 8
etc.

当有人输入单词时,您可以检查单词是否已在表格中并插入更新计数器。在MySQL中可以使用INSERT ... ON DUPLICATE KEY UPDATE。像这样:

INSERT INTO table (word,count) VALUES ('word3',1)
ON DUPLICATE KEY UPDATE count=count+1;

比使用

检查单词是否存在更好
SELECT * FROM table WHERE word = 'word3'

然后决定是否使用INSERT或UPDATE。当然,你必须在单词列上放置UNIQUE KEY。

答案 1 :(得分:0)

这样的事情应该有效,假设你的words表有word作为字符串,count作为整数。你可能需要修改它,具体取决于你如何与mysql进行交互

$word = mysql_real_escape_string($_POST['word']);
$query = 'UPDATE words SET count = count+1 WHERE word = '.$word;
mysql_query($query);
if( !mysql_affected_rows() ) {
  $query = 'INSERT INTO words (word,count) VALUES('.$word.',1)';
  mysql_query($query);
}

答案 2 :(得分:0)

以下查询将返回一个结果集,显示“数据”表的“值”列中每个值的出现次数。如果您只对一个特定的“值”感兴趣,请添加“WHERE”子句。

SELECT Value, COUNT( DISTINCT Id ) AS Occurrences 
FROM Data
GROUP BY Value