Считаете то же слово, что пользователь вводит из формы с Mysql и PHP? - PullRequest
0 голосов
/ 22 сентября 2009

Мне было интересно, если кто-то вводит слово в базу данных из формы php, как можно посчитать, сколько людей ввели одно и то же слово в базу данных, а также как не создать целый уникальный идентификатор для этого же слова просто количество для того же слова, когда пользователь вводит одно и то же слово.

Ответы [ 3 ]

1 голос
/ 22 сентября 2009

Вы можете создать таблицу 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. Конечно, вы должны поставить уникальный ключ на столбце слова.

0 голосов
/ 22 сентября 2009

Следующий запрос вернет набор результатов, отображающий количество вхождений каждого значения в столбце «Значение» таблицы «Данные». Добавьте предложение «ГДЕ», если вас интересует только одно конкретное «Значение».

SELECT Value, COUNT( DISTINCT Id ) AS Occurrences 
FROM Data
GROUP BY Value
0 голосов
/ 22 сентября 2009

что-то вроде этого должно работать, предполагая, что ваша таблица 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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...