[RESOLU] Notice: Trying to get property of non-object in

Eléphant du PHP | 153 Messages

25 mai 2019, 19:42

Il me semble que ça fonctionne bien :)

http://zupimages.net/viewer.php?id=19/21/q0kk.png

Avatar du membre
Mammouth du PHP | 1609 Messages

25 mai 2019, 19:43

Tu avais une erreur ? peut être un Allowed memory size of n bytes exhausted ?

Voilà c'est beaucoup mieux :)

Tu as combien de lignes dans dictionnaire ?

EDIT : ah oui d'ailleurs je te recommande vivement d'ajouter un index sur la colonne sorted_letters. Ça améliorera grandement les performance de la requête quand tu feras le WHERE sorted_letters = '$sorted_letters'
Modifié en dernier par Saian le 25 mai 2019, 19:47, modifié 1 fois.
Développeur web depuis + de 20 ans

Eléphant du PHP | 153 Messages

25 mai 2019, 19:46

393672 lignes
J'avais déjà gonfler dans php.ini le "temps max_execution_time"

Eléphant du PHP | 153 Messages

25 mai 2019, 19:47

Ca va assez vite il est autour des 600 premiers mots sur même pas 10 minutes

Avatar du membre
Mammouth du PHP | 1609 Messages

25 mai 2019, 20:00

Lorsque tu voudras insérer de nouveaux mots :
/** SCRIPT INSERT NEW WORD */
require ('mysqli_conn.php');
$conn = new mysqli($servername, $username, $password, $dbname);

$word = $conn->real_escape_string('mot');
$sorted_letters = sort_alpha_noaccent_tolower($word);

$insert = "INSERT INTO dictionnaire SET 
  scrabble_lettre = '{$word[0]}',
  scrabble_nbr = '".strlen($word)."',
  scrabble_name = '$word',
  scrabble_vb = '',
  sorted_letters = '$sorted_letters'";

$conn->query($insert);
Modifié en dernier par Saian le 25 mai 2019, 20:10, modifié 2 fois.
Développeur web depuis + de 20 ans

Eléphant du PHP | 153 Messages

25 mai 2019, 20:01

Merci beaucoup Saian :)

Avatar du membre
Mammouth du PHP | 1609 Messages

25 mai 2019, 20:05

Le $conn->real_escape_string() n'est pas indispensable tant qu'aucun mot ne contient d'apostrophe.
Développeur web depuis + de 20 ans

Eléphant du PHP | 153 Messages

25 mai 2019, 20:06

Ok, merci beaucoup vraiment si j'ai besoin de conseils je sais où aller maintenant :)

Avatar du membre
Mammouth du PHP | 1609 Messages

25 mai 2019, 20:07

Et d'après le screenshot, tu peux déjà tester le script de récupération des anagrammes sur le mot scrabble_id 2 ou 3 qui sont visiblement des anagrammes. ;)
Développeur web depuis + de 20 ans

Eléphant du PHP | 153 Messages

25 mai 2019, 20:09

Oui effectivement, mais je n'ai pas le programme en local :)

Eléphant du PHP | 153 Messages

25 mai 2019, 20:21

Je viens de m’apercevoir d'un truc là.
Il créé bien des anagrammes mais comment vais-je faire pour vérifier si ils existent bien dans la colonne scrabble_mots ?
exemple : acanthes il me donne : aacehnst et aacehnst n'existe pas comme mot :?

Avatar du membre
Mammouth du PHP | 1609 Messages

25 mai 2019, 20:32

Tu vas utiliser le script /** SCRIPT LOOKING FOR ANAGRAMMES */ qui consiste à chercher toutes les lignes dans le dictionnaire qui ont un même sorted_letter que tu génères à partir d'un mot donné.
/** SCRIPT LOOKING FOR ANAGRAMMES */
require ('mysqli_conn.php');
$conn = new mysqli($servername, $username, $password, $dbname);

$search = 'chanter';// 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/>';
}
Développeur web depuis + de 20 ans

Eléphant du PHP | 153 Messages

25 mai 2019, 20:33

Vraiment tu portes bien ton pseudo "Mammouth du PHP" BRAVO :)

Eléphant du PHP | 153 Messages

25 mai 2019, 20:36

Du coup je viens de le tester avec le l'id 2 et effectivement ça marche bien :)

Avatar du membre
Mammouth du PHP | 1609 Messages

25 mai 2019, 20:44

Ça fait 19 ans que je développe dont 17 avec php. ;)
Et le Mammouth du PHP c'est juste rapport au nombre de messages envoyés sur le forum. ^^
Développeur web depuis + de 20 ans