Les plus longues phrases avec sql/php !
Résolu/Fermé
Elodie_79
Messages postés
73
Date d'inscription
lundi 1 avril 2013
Statut
Membre
Dernière intervention
13 mars 2014
-
11 juin 2013 à 11:16
Elodie_79 Messages postés 73 Date d'inscription lundi 1 avril 2013 Statut Membre Dernière intervention 13 mars 2014 - 20 juin 2013 à 14:13
Elodie_79 Messages postés 73 Date d'inscription lundi 1 avril 2013 Statut Membre Dernière intervention 13 mars 2014 - 20 juin 2013 à 14:13
A voir également:
- Les plus longues phrases avec sql/php !
- Easy php - Télécharger - Divers Web & Internet
- Faire une phrase avec les mots suivants ✓ - Forum Loisirs / Divertissements
- Tapez cette phrase, en respectant bien les espaces et la ponctuation. - Guide
- Logiciel sql - Télécharger - Bases de données
- Get_magic_quotes_gpc php 8 ✓ - Forum PHP
2 réponses
Utilisateur anonyme
11 juin 2013 à 14:48
11 juin 2013 à 14:48
salut
tu peux inverser ton like dans ta requête. C'est dire, au lieu de faire
tu peux plutot faire :
ensuite rajouter un
pour remonter les résultats les plus longs en premier est tout à faire possible
tu peux inverser ton like dans ta requête. C'est dire, au lieu de faire
.... AND CHAINE_BASE like '%le texte a lire%'
tu peux plutot faire :
.... AND 'le texte a lire' like concat('%',CHAINE_BASE,'%')
ensuite rajouter un
ORDER BY LENGTH(CHAINE_BASE)DESC
pour remonter les résultats les plus longs en premier est tout à faire possible
Elodie_79
Messages postés
73
Date d'inscription
lundi 1 avril 2013
Statut
Membre
Dernière intervention
13 mars 2014
2
12 juin 2013 à 16:17
12 juin 2013 à 16:17
je ne sais pas est ce que en faisant des classes ou des fonctions :( :(
Elodie_79
Messages postés
73
Date d'inscription
lundi 1 avril 2013
Statut
Membre
Dernière intervention
13 mars 2014
2
13 juin 2013 à 09:10
13 juin 2013 à 09:10
Bonjour; la partie la plus importante je l'ai déjà montré:
et voila ce j'ai déjà fait:
foreach($tab as $key=>$value){// $value est une ligne de mon fichier
$requete = 'SELECT mots FROM tablet WHERE \''.mysql_real_escape_string($value). '\' LIKE concat(mots) AND page_namespace=0 ORDER BY LENGTH(mots)DESC';
$result = mysql_query($requete, $link) or die (mysql_error());
if($row=mysql_fetch_row($result)){
$tabb[]=$value;
}}
print_r($tabb);
c'est ça mon code si je mets que chaque variable de $tab est une ligne de mon fichier , donc il vérifie pour l'ensemble de ligne est pas les mots
et si je déclare chaque variable de mon tableau est un mot de ces phrases donc il ignore les mots composés
Merci
et voila ce j'ai déjà fait:
foreach($tab as $key=>$value){// $value est une ligne de mon fichier
$requete = 'SELECT mots FROM tablet WHERE \''.mysql_real_escape_string($value). '\' LIKE concat(mots) AND page_namespace=0 ORDER BY LENGTH(mots)DESC';
$result = mysql_query($requete, $link) or die (mysql_error());
if($row=mysql_fetch_row($result)){
$tabb[]=$value;
}}
print_r($tabb);
c'est ça mon code si je mets que chaque variable de $tab est une ligne de mon fichier , donc il vérifie pour l'ensemble de ligne est pas les mots
et si je déclare chaque variable de mon tableau est un mot de ces phrases donc il ignore les mots composés
Merci
tu dois ajouter ton $row à ta table et non $value qui est ta valeur de base .. dans ton cas c'est le row[0] qui correspond aux mots de ta bdd, et il faut que tu ajoute un élément à ta table, par exemple :
avec i étant un compteur pour ajouter un élément à ta table. donc en gros (je vérifie pas ton code) :
$tabb[i]=$row[0]
avec i étant un compteur pour ajouter un élément à ta table. donc en gros (je vérifie pas ton code) :
$i = 0 foreach($tab as $key=>$value){// $value est une ligne de mon fichier $requete = 'SELECT mots FROM tablet WHERE \''.mysql_real_escape_string($value). '\' LIKE concat(mots) AND page_namespace=0 ORDER BY LENGTH(mots)DESC'; $result = mysql_query($requete, $link) or die (mysql_error()); if($row=mysql_fetch_row($result)){ $tabb[$i]=$value; $i++; }} print_r($tabb);
Elodie_79
Messages postés
73
Date d'inscription
lundi 1 avril 2013
Statut
Membre
Dernière intervention
13 mars 2014
2
13 juin 2013 à 11:22
13 juin 2013 à 11:22
merci pour ton aide mais meme comme ça c'est sans succées il m'affiche tjr les meme résultats
bah 2 choses, la première c'est que tu assignais $value dans tous les cas, donc ta requête n'avait pas d'impact. La seconde c'est que je n'ai aucunes infos.
déjà essaye d'afficher les requêtes qui sont jouée pour les contrôler, si tu peux les tester directement sur ta base de données, fais le et vois les résultats. Le code que tu écris à une forme qui donne l'impression que tu as déjà contrôlé pas mal de points, ecris plutot quelque chose du genre
comme ca tu pourra déjà controler quelle est la valeur de la ligne lue, quelle est sa requête construite et quels sont les résultats obtenus, de manière à assez propre pour être lisible (ce qui suffit pour débugger).
Regarde déjà ce que ca affiche
déjà essaye d'afficher les requêtes qui sont jouée pour les contrôler, si tu peux les tester directement sur ta base de données, fais le et vois les résultats. Le code que tu écris à une forme qui donne l'impression que tu as déjà contrôlé pas mal de points, ecris plutot quelque chose du genre
foreach($tab as $key=>$value)// $value est une ligne de mon fichier { echo "<div>" . $value . "<br />"; echo "-----------------------------------------------"; echo "REQUETE : " . "<br />"; $requete = 'SELECT mots FROM tablet WHERE \''.mysql_real_escape_string($value). '\' LIKE concat(mots) AND page_namespace=0 ORDER BY LENGTH(mots)DESC'; echo $requete; $result = mysql_query($requete, $link) or die (mysql_error()); //$link sort d'où? où se fait la connexion à ta bdd ? $row=mysql_fetch_row($result); //le if ne sert à rien si tu fais une assignation vu que la fonction retourne un tableau. echo "<br />RESULTATS : <br />" print_r($row) ;//regarde déjà les résultats de ta requete echo "</div>"; }
comme ca tu pourra déjà controler quelle est la valeur de la ligne lue, quelle est sa requête construite et quels sont les résultats obtenus, de manière à assez propre pour être lisible (ce qui suffit pour débugger).
Regarde déjà ce que ca affiche
11 juin 2013 à 14:49
11 juin 2013 à 15:28
j'espère que j'ai clarifié mon problème :(
11 juin 2013 à 17:00
et non ma requête ne vérifie pas la ligne complète, d'où l'importance des %. Je m'éxplique :
tu as en base : 'pays'. Ce que ma requête fait c'est vérifier si 'pays' est contenu dans la phrase de départ. et te permettra donc de récupérer toutes les chaines de caractère présentes dans ta base et dans une partie de ta phrase.
11 juin 2013 à 17:52
12 juin 2013 à 07:46
Ce que je t'ai donné, c'est un moyen de récupérer à partir d'une phrase unique les expressions présentes dans ta phrases et dans ta base de donnée. Pour le reste je ne vois pas quel est l'objectif.