Bonjour les amis du site,

Je ne suis pas un expert en php et pdo

Je cherche à faire un moteur de recherche en PDO avec des mots en désordre c'est pour un jeu style Scrabble


Pour info j'ai 26 tables (chaque table est une lettre de l'alphabet) , mais pour le moment on va imaginer qu'il doit chercher uniquement dans la table "M"

Exemple je vais lui demander de chercher :

mnagre

Il est censé de me donner tous les mots avec ses lettres

manga, mangabey, mangabeys, mangaka etc...




Mais je dois avouer je suis complètement perdu depuis trois jours que je cherche une solution mais en vain ...

Pourriez vous m'aider ?

Voici mon script : http://www.verifier-mots.fr/moteur1.php

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
 
$mot="mang";
 
    $longueur = strlen($mot);
    for($index = 0; $index < $longueur; $index++)
    {
        $monmot .= "%".$mot[$index]."";
    }
 
 
 $premierelettre=$mot[0];$NomBase=$premierelettre."_dico"; 
// connexion bdd    
$BDD_hote = '*****';
$BDD_bd = '*****';
$BDD_utilisateur = '*****';
$BDD_mot_passe = '****';
$chainesearch = addslashes($monmot);  
$chainesearch="mang%";
echo '<br /><hr/>Vous avez recherché : <strong>' . $mot . '</strong><br />';      
	try{
		$bdd = new PDO('mysql:host='.$BDD_hote.';dbname='.$BDD_bd, $BDD_utilisateur, $BDD_mot_passe);
		$bdd->exec("SET CHARACTER SET utf8");
		$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
	}
		catch(PDOException $e){
		echo 'Erreur : '.$e->getMessage();
		echo 'N° : '.$e->getCode();
	}      
	$requete = "SELECT * from ".$NomBase." WHERE scrabble_name LIKE '". $chainesearch ."'"; 
    $resultat = $bdd->query($requete) or die(print_r($bdd->errorInfo()));
    while($donnees = $resultat->fetch(PDO::FETCH_ASSOC)) {
 
$word1 = str_split($donnees['scrabble_name']);
$word2 = str_split($mot);
 
echo strpbrk($mot, $donnees['scrabble_name'])." : " . $donnees['scrabble_name'];
 
 echo "<br/>";
 }
 
 
 
 
 
function identStrings($string1, $string2) {
    $token = strtok($string1, " "); // tokenize the string by spaces
    $numbers = array_map('intval',array_filter(explode(' ', $string2)));
    while($token !== false) {
        if (!$token)
            continue;
        if (($key = array_search((int)$token, $numbers)) === false)
            return false;
        else
            unset($numbers[$key]);
        $token = strtok(" ");
    }
    return true;
}
 
?>

Merci à vous

Eric