Bir kullanıcı MySQL ve PHP ile bir formdan girdiği aynı kelimeyi Sayma?

4 Cevap php

Bazı biri o aynı kelime için sadece bir sayım için bir bütün benzersiz bir kimlik oluşturmak için değil nasıl yanı sıra veritabanında aynı kelimeyi girmiş kaç kişi nasıl güvenebilirsiniz bir php formdan bir veritabanına bir kelime girerse ben merak ediyorum kullanıcı aynı kelimeyi girdiği aynı kelime.

4 Cevap

Aşağıdaki şema ile tablo wordsCount oluşturabilirsiniz.

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

Birisi türleri sözcük tablosunda zaten olup olmadığını kontrol edin ve ot güncelleme sayacı ekleyebilirsiniz sözcüğü. MySQL kullanabilirsiniz INSERT ... ON DUPLICATE KEY UPDATE. Bu gibi:

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

Sözcük kullanarak Varlığından eğer kontrol daha iyidir

SELECT * FROM table WHERE word = 'word3'

INSERT veya UPDATE kullanmak eğer ve sonra karar. Tabii ki kelime sütunda UNIQUE KEY koymak zorunda.

Insanlar sadece tek bir kelime giriyor musunuz? Gibi, bir form var ve ben oraya gitmek ve "tost" yazın ve butonu tıklayın?

Böyle bir şey words table word bir dize olarak ve count bir tamsayı olarak varsayarak, çalışması gerekir. u mysql ile nasıl etkileşime bağlı olarak değiştirmek gerekebilir

$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);
}

Aşağıdaki sorgu "Veri" tablosunun "Değer" sütununda her bir değerin olay sayısını gösteren bir sonuç kümesi döndürür. Eğer belirli bir "değer" sadece ilgileniyorsanız eğer bir "WHERE" yan tümcesi ekleyin.

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