Bonjour à tous
Je voulais savoir si il était possible et comment faire pour recuperer seulement les mots faisant plus de 5 lettres dans ma base mysql ?
Merci d'avance
Bonjour à tous
Je voulais savoir si il était possible et comment faire pour recuperer seulement les mots faisant plus de 5 lettres dans ma base mysql ?
Merci d'avance
C'est fort possible.
Il doit bien exister une fonction qui retourne la longueur d'une chaîne de caratére en SQL, tu doit jeter un oeil dans la documentation...
Pour l'instant on va dire que cette fonction s'appelle "STRING_LENGTH" :
Ta requête SQL ressemblera à :
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part SELECT * FROM dictionnaire WHERE STRING_LENGTH(mot) > 5 ;
Sous Mysql tu as CHARACTER_LENGTH.
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part Select * from MyTable where CHARACTER_LENGTH(mot)>5
A+
Salut merci pour vos réponses.
J etrouve plus de rensaignement sur CHARACTER_LENGTH, mais je ne m'en sort pas, impossible d'extraire quoi que se soit.
Si matbale s'apelle astuce et le champ descritpion, comment faire pour sortir les mots de plus de cinq lettre ?
j'ai essayé
mais tout s'affiche sans distinction.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $sql1 = 'SELECT * FROM astuce WHERE CHARACTER_LENGTH('.astuce_description.')>5';
j'ai aussi essayé
mais c'est pareil, en plus je voudrais récuperer les mots de 5 lettres et plus en selectionnant un seul id.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $sql1 = 'SELECT * FROM astuce WHERE CHARACTER_LENGTH(astuce.astuce_description)>5';
Mais la page reste blanche, dans ce cas je comprend que rien ne s'affiche dans mes choix, vu que je ne lui indique aucun champ à limiter, mais je ne comprend vraiment pas et dans ce que je lis CHARACTER_LENGTH compte bien le nombre de caractère et je ne vois comment lui dire d'extraire les mots.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $sql1 = 'SELECT * FROM astuce WHERE CHARACTER_LENGTH(astuce_id='.$_GET['ast'].')>5';
Comme vous pouvez le voir je suis assez débutant, donc un peu d'aide avec une explication m'aiderai beaucoup.
Merci
c'est bizzard si tu ne recupere rien, mais il faut que tu verifie ça d'abord en lançant la requete dans l'interpreteur de Mysql directement et regardes ce qu'il genere.
bonsoir mamiberkof
Je ne savais pas que l'on pouvait generer les requêtes dans l'interpreteur, c'est genial .
Par contre quand je genere, c'est pareil pour les 2 premières requete ça m'affiche tout. Apparement le problème vient du fait que ça affiche tout parce que le tout fait plus de 5 lettres.
comment lui dire d'isoler les mots de plus de 5 lettres, le problème est la.
dans chaque champs astuce_description, il y a des phrases completes.
Ce qui est bizarre c'est que si je mets jusqu'à >19 tout s'affiche à >20 plus rien ne s'affiche.
Merci
Ca marche tres bien c'est que tu n'utilise pas cela comme il faut!
Ici : CHARACTER_LENGTH() dans les parenthèse ce qu'il faut mettre c'est une colonne de ta table...
Salut
astuce_description est une colonne de la table et voila ce que ça affiche :
http://www.teeshotweb.com/astuces/mot_essai.php
la requete utilisée :
je ne veux que les mots supérieur à 5 lettres et ne concernant qu'une astuce.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <?php $sql1 = 'SELECT * FROM astuce WHERE CHARACTER_LENGTH('.astuce_description.')>5'; $req1 = mysql_query($sql1) or die('Erreur SQL !<br>'.$sql1.'<br>'.mysql_error()); while($title = mysql_fetch_assoc($req1)) { echo ''.$title['astuce_description'].''; } ?>
Je veux bien que je l'utilise mal, mais comment l'utiliser bien ?
Merci
Si c'est une colonne alors ta requête devrai etre écrite comme ceci:
Et la ca marche
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $sql1 = 'SELECT * FROM astuce WHERE CHARACTER_LENGTH(astuce_description)>5';
Si j'ai bien compris ce que vous vouliez faire :
Sur l'ensemble de la table :
Sur un enregistrement précis de la table :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 $query = mysql_query('SELECT * FROM astuce') or die(mysql_error()); $mots = array(); while ($array = mysql_fetch_assoc($query)) { preg_match_all('/\b(\w{5,})\b/U', $array['astuce_description'], $m); $mots = array_merge($mots, $m[1]); } print_r($mots);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 $id = isset($_GET['id']) ? intval($_GET['id']) : 0; if (!$id) { die('Paramètre erroné !'); } $query = mysql_query('SELECT * FROM astuce WHERE astuce_id = ' . $id) or die(mysql_error()); $array = mysql_fetch_assoc($query); preg_match_all('/\b(\w{5,})\b/U', $array['astuce_description'], $m); $mots = $m[1]; print_r($mots);
Merci cerede2000, mais c'est la même chose que ma ligneEnvoyé par cerede2000
et ça affiche tout.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $sql1 = 'SELECT * FROM astuce WHERE CHARACTER_LENGTH('.astuce_description.')>5';
Merci julp, ça marche et c'est ce que je cherchais. Je comprend pas tout ton code, mais je vais chercher à comprendre.
Merci
A bientôt
Au passage cette REGEX la aurait suffit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 preg_match_all('/\w{5,}\b/U', $array['astuce_description'], $m);
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager