Code : Tout sélectionner
<?php
function sort_alpha_noaccent_tolower($str)
{
$str = mb_strtolower($str); // tout en minuscules
$str = strtr($str, // sans accents
'àáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'aaaaaaceeeeiiiioooooouuuuyy');
$chr = str_split($str,1);
sort($chr); // ordre alphabetique
return trim(implode('',$chr)); // supprime les espaces (si on a plusieurs mots)
}
require ('mysqli_conn.php');
$conn = new mysqli($servername, $username, $password, $dbname);
$search = 'acquiescerez';// le mot recherché
$sorted_letters = $conn->real_escape_string(sort_alpha_noaccent_tolower($search));// l'anagramme unique de recherche
$query = "SELECT * FROM dictionnaire WHERE sorted_letters = '$sorted_letters'";// sélectionne tous les mots du dictionnaire ayant cet anagramme unique
$words = $conn->query($query);
/* affiche tous les mots excepté le mot original */
while ($word = $words->fetch_object())
{
if ($word->scrabble_name != $search)
echo $word->scrabble_name.'<br/>';
}
echo "<br/>::".$sorted_letters."..";
?>
while ($word = $words->fetch_object())
{
if ($word->scrabble_name != $search)// si scrabble_name est différent de acquiescerez
echo $word->scrabble_name.'<br/>';
}
Si tu veux afficher le mot donné au départ tu dois simplement enlever le if./** SCRIPT UPDATE DATABASE - EXECUTE ONCE V2 */
require ('mysqli_conn.php');
$conn = new mysqli($servername, $username, $password, $dbname);
$query = 'SELECT * FROM dictionnaire';
$words = $conn->query($query);
$dump = fopen('update-dictionnaire-sorted_letters.sql', 'w');
while ($word = $words->fetch_object())
{
$sorted_letters = $conn->real_escape_string(sort_alpha_noaccent_tolower($word->scrabble_name));
$update = "UPDATE dictionnaire SET sorted_letters = '$sorted_letters' WHERE scrabble_name = '{$word->scrabble_name}';\n";
fputs($dump, $update);
}
fclose($dump);
Il faut que le serveur web ai les droits d'écriture sur le répertoire où est exécuter le script.