Compare commits

...

2 commits

Author SHA1 Message Date
39d4be9eb3 Add words similarity test
Should put the almost same words in the same counter
2020-11-23 22:17:30 +01:00
ce1f76a96c Avoid multiple insertion
Avoid multiple insertion of the same word on the same vote
2020-11-23 22:00:02 +01:00
2 changed files with 25 additions and 1 deletions

22
db.php
View file

@ -85,6 +85,19 @@ class DataBase
} else {
return false;
}
$stmt = $this->db->prepare("
SELECT *
FROM words
WHERE cloud_id = :cid;
");
$stmt->bindValue(':cid', $cloudId, PDO::PARAM_INT);
$stmt->execute();
while($data = $stmt->fetch()) {
if ($this->areWordsSimilar($data['word'], $word)) {
$word = $data['word'];
break;
}
}
$stmt = $this->db->prepare("
SELECT *
FROM words
@ -275,4 +288,13 @@ class DataBase
return false;
}
function areWordsSimilar(string $word1, string $word2)
{
$sim = similar_text($word1, $word2, $perc);
$sim_meta = similar_text(metaphone($word1), metaphone($word2), $perc_meta);
if ($perc >= 80 && $perc_meta >= 80) {
return true;
}
return false;
}
}

View file

@ -9,13 +9,15 @@ include 'templates/header.php';
$id = null;
$cpt = 0;
$already_used = array();
foreach ($_POST as $name => $value) {
$cpt;
if ($name == 'fid') {
$id = $value;
continue;
}
if (isset($id)) {
if (isset($id) && !in_array($value, $already_used)) {
$already_used[] = $value;
$value = trim(strtolower($value));
$db->addWord($id, $value);
}