Code : Tout sélectionner
<?php
// ----------------------------
$mot="chanter";
$lettre="dictionnaire";
$motDico="";
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');
// ----------------------------
// A FAIRE UNE FOIS POUR TOUTES
// (il faut d abord créer une colonne dans la table : 'sorted_letters')
// ----------------------------
$conn = new mysqli($servername, $username, $password, $dbname);
// $selectDico = "SELECT * FROM $lettre WHERE scrabble_lettre LIKE '$mot[0]%'"; // NON ! (erreur)
$selectDico = "SELECT * FROM $lettre WHERE scrabble_lettre LIKE '$mot[0]%'";
$allDico = $conn->query($selectDico);
if ($allDico->num_rows > 0)
{
while($row = $allDico->fetch_assoc())
{
$sorted_letters = $conn->real_escape_string( sort_alpha_noaccent_tolower($row['scrabble_name']) );
$updateDico = "UPDATE $lettre SET sorted_letters = ".$sorted_letters.";";
$conn->query($updateDico);
}
}
// ----------------------------
echo '<br />...<br />';
$sorted = $conn->real_escape_string(sort_alpha_noaccent_tolower($mot));
$conn = new mysqli($servername, $username, $password, $dbname);
$selectDicoo = "SELECT * FROM $lettre WHERE sorted_letters = ".$sorted.";";
$motDico = $conn->query($selectDicoo);
if ($motDico->num_rows > 0)
{
while($row = $motDico->num_rows())
{
echo $row['mot'].'<br />';
}
}
// ----------------------------
?>Code : Tout sélectionner
CREATE TABLE `dictionnaire` (
`scrabble_id` int(11) NOT NULL,
`scrabble_lettre` text CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`scrabble_nbr` int(1) NOT NULL,
`scrabble_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`scrabble_vb` text CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`sorted_letters` text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
L'erreur :
Notice: Trying to get property of non-object in ............. on line 59
Ligne 59 = if ($motDico->num_rows > 0)
Pourriez vous m'éclairer ?
Merci pour votre aide.
Eric
