cs_malaysia
Messages postés50Date d'inscriptionvendredi 29 octobre 2004StatutMembreDernière intervention12 juillet 2005
-
5 juil. 2005 à 12:10
cs_malaysia
Messages postés50Date d'inscriptionvendredi 29 octobre 2004StatutMembreDernière intervention12 juillet 2005
-
6 juil. 2005 à 21:57
Bonjour,
J'interroge une BD avec risque de nombreuses réponses et des réponses assez longues. Y a-t'il moyen de surligner le mot cherché dans les réponses ?
Ma requête est celle-ci pour l'instant :
$req = mysql_query("SELECT url, description from actes_tbl where description LIKE '%$_POST[recherche]%' Order by url Asc limit 0,1 ") or die ("erreur req ".mysql_error());
cs_malaysia
Messages postés50Date d'inscriptionvendredi 29 octobre 2004StatutMembreDernière intervention12 juillet 2005 6 juil. 2005 à 21:57
Désolé de reprendre le forum aussi longtemps après la dernière réponse mais j'avais un pb de connexion. Maintenant c'est OK, j'ai essayé la dernière proposition (avec correction ). Tout va bien. Je rappelle le code final si ça interesse quelqu'un un jour :
cs_malaysia
Messages postés50Date d'inscriptionvendredi 29 octobre 2004StatutMembreDernière intervention12 juillet 2005 5 juil. 2005 à 13:48
Ce ne fonctionne pas :
Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in /var/www/free.fr/e/e/ch.yernaux/recherche.php on line 45
Pourquoi y-a 'il des ' dans $_POST['recherche'] par exemple ? Mon intitulé habituel est $_POST[recherche]
Je suppose que $resultat['description'] est en fait $sortie[description] ?
cs_malaysia
Messages postés50Date d'inscriptionvendredi 29 octobre 2004StatutMembreDernière intervention12 juillet 2005 5 juil. 2005 à 15:43
Justement, il n'y a que quand il n'y a pas de quotes que j'obtiens un résultat potable. Sinon avec ton code j'ai :
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /var/www/free.fr/e/e/ch.yernaux/recherche.php on line 45
Voici le code complet: (la ligne 45 est celle d'"echo... "tout en bas. Cette page fait suite à un formulaire de recherche :
<?
if(strlen($_POST[recherche])<2)//on vérifie que la demande comporte au moins 3 caractères
print '
LE CHAMP DOIT CONTENIR AU MOINS 3 CARACTERES
Cliquez sur "Précédente"'; //s'il y a moins de 3 caractères, message d'erreur
else{
//----------------------------------------------------------------
//
// Page de recherche avec le mot ou les mots clés
//
// recherche.php
//
//----------------------------------------------------------------
$mysql_host = 'sql.free.fr'; // entrer votre hote ici
$mysql_user = 'ch.yernaux'; // entrer votre login
$mysql_password = '6d3k9267'; // entrer votre password
$mysql_base = 'ch_yernaux'; // entrer le nom de votre base
//----------------------------------------------------------------
//Attention, je ne vais pas reprendre les vérifications de formulaires, vous les avez vu dans les cours précédents.
//on se connecte à la base de donnée
$db = mysql_connect($mysql_host,$mysql_user,$mysql_password) or die ("erreur de connexion");
//sélection de votre base de donnée
mysql_select_db($mysql_base,$db) or die ("erreur de connexion base");
//requête de recherche
$req = mysql_query("SELECT url, description from annuaire_tbl where description LIKE '%$_POST[recherche]%' Order by url Asc limit 0,1 ") or die ("erreur req ".mysql_error());
//on compte les résultats
$res= mysql_numrows($req);
//on affiche le nombre de résultats trouvés
print ' Pour le mot '.$recherche.' il y a '.$res.' résultat(s)
';
//----------------------------------------------------------------------
//on ressort les infos par ordres alphabétiques, voir order dans la requête
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 5 juil. 2005 à 15:53
Deja tu peux enlever les doubles quotes :
echo str_replace ($_POST['recherche'], ''.$_POST['recherche'].'',
$sortie['description']);ensuite essaye d'assigner et te faire un echod e la variable :
cs_malaysia
Messages postés50Date d'inscriptionvendredi 29 octobre 2004StatutMembreDernière intervention12 juillet 2005 5 juil. 2005 à 16:13
Question annexe: Comment str_replace sait-il ce qui est à remplacer et par quoi ? Les guillemets permettaient de définir les deux parties: remplacer "recherché" par "recherché surligné en rouge" dans $sortie['description'] mais là ??? Tout est dans la parenthèse ?
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 5 juil. 2005 à 16:26
Heu et la tu as mis le str_replace AVANT la recherche dans ta base,
donc $sortie['description'] n'existe pas. Tu dois le mettre dans la
boucle allant chercher les resultats de ta requete.
cs_malaysia
Messages postés50Date d'inscriptionvendredi 29 octobre 2004StatutMembreDernière intervention12 juillet 2005 5 juil. 2005 à 16:31
C'est fait, c'est justement là que j'ai vu qu'habituellement il y a des guillemets.
Je ne sais pas ce qu'à le site PHPCS mais il met une ou deux minutes pour afficher une page en ce moment (en ADSL) !