Problème de search() [Résolu]

Signaler
Messages postés
87
Date d'inscription
vendredi 24 mars 2006
Statut
Membre
Dernière intervention
14 janvier 2011
-
Messages postés
87
Date d'inscription
vendredi 24 mars 2006
Statut
Membre
Dernière intervention
14 janvier 2011
-
je suis nouveau en PHP j'aimerai apprendre ;)

9 réponses

Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
bien sur que non.

c'est l'appel de ta fonction qui doit-etre dans la boucle
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
google est ton ami...

tu peux commencer par
phpdebutant.org
ou
php.net
Messages postés
87
Date d'inscription
vendredi 24 mars 2006
Statut
Membre
Dernière intervention
14 janvier 2011
1
je ne c pas pk mon post ne c pas affiché, a vrai dire je ne suis pas débutant, j'ai un message d'erreur qui est le suivant : Fatal error: Cannot redeclare search() (previously declared in c:\.....

mon scripte est le suivant donc j'effectu une recherche et j'aimerai affiché les mots trouvé en gras, la 1er mot s'affiche normalement mais le reste j'ai le message d'erreur
mon scripte est le suisvant merci beaucoup pour votre aide
<?  $recherche= $_POST['recherche'];
$retour = mysql_query("SELECT * FROM pages WHERE texte LIKE '%$_POST[recherche]%' OR titre LIKE '%$_POST[recherche]%'");
if (mysql_num_rows($retour) == 0)
{ echo"aucun résultat trouver!!!";} else {
  while ($donnees = mysql_fetch_array($retour))
                                          { $titre=$donnees['titre'];
          
           $texte=$donnees['texte']; //echo $texte;
           $texte_a = str_replace($recherche, ' '.$recherche.' ', $texte);
          // echo $texte_a;
//-----------------
$chaine =$texte;
$mot= $recherche;
$nbchar=40;


function search($chaine, $mot, $nbchar) {
 $final = "";


 $gauche = strstr(strrev($chaine),strrev($mot));
 $gauche = strrev($gauche);
 if(strlen($gauche) >= $nbchar+strlen($mot)){
  $gauche = substr($gauche,-$nbchar-strlen($mot));
  $espace = strpos($gauche," ");
  $gauche = "...".substr($gauche,$espace+1);
 }
 $final .= $gauche;


 $final = substr($final,0,-strlen($mot));


 $droite = strstr($chaine,$mot);
 if(strlen($droite)>=$nbchar){
  $droite = substr($droite,0,$nbchar+strlen($mot));
  $espace = strrpos($droite," ");
  $droite = substr($droite,0,$espace)."...";
 }
 $final .= $droite;


 $final = str_replace($mot, " ".$mot." ", $final); //mettre en gras le mot trouvé


 return $final;
}
if (!search($chaine, $mot, $nbchar)) { echo"aucun mot trouvé"; }
 $url ="contenu.php?affichage=".$donnees['id'];  ?> [<? echo $url; ?> <? echo $titre; ?>] <?  echo"
";
echo search($chaine, $mot, $nbchar);
//---------------
            }
          
          
          } ?>
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
faut croire que la fonction search existe deja.
Messages postés
87
Date d'inscription
vendredi 24 mars 2006
Statut
Membre
Dernière intervention
14 janvier 2011
1
oui justement parce qu'a chaque fois dans la boucle la fonction s'execute donc y'aura le serch(), y'a pas un moyen de contourné ça ?


merci pour ta réponse rapide
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
si, tu la definis une seule fois : au debut.
Messages postés
87
Date d'inscription
vendredi 24 mars 2006
Statut
Membre
Dernière intervention
14 janvier 2011
1
oui mais je t'explique, dans la boucle il réccupère le texte dans une base de donnée et j'effectu une recherche du mot tapé sur le moteur de recherche donc je suis obligé de chercher dans chaque texte du coup ma fonction doit figuré dans ma boucle ... :(
Messages postés
87
Date d'inscription
vendredi 24 mars 2006
Statut
Membre
Dernière intervention
14 janvier 2011
1
ah oui j'y avait pas pensé donc tu me coseil de déclaré ma fonction et de faire l'appel dans la boucle, je v essayé de suite... merci :)
Messages postés
87
Date d'inscription
vendredi 24 mars 2006
Statut
Membre
Dernière intervention
14 janvier 2011
1
oui ça marche :D merci beaucoup coucou747