Bonjour,

J'ai un problème lors de l'affichage du résultat de ma recherche.
Je voudrais passer par une fonction qui réduise la description de la recherche (du style "... blabla mot clé blabla...")

Mon code marche très bien hors fonction ! Je dois avoir une erreur toute bête, que je n'arrive pas à trouver

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
 
<?php
		$key= $_POST[pesq];
		$checkeventos= $_POST[eventos];
 
		function prout($donneesDcrip)
		{
			$clean= strtolower(strip_tags($donneesDcrip,'<p><br><br/>'));
			if(preg_match("#$key#i", $clean))
			{
				if(strlen($clean)>400)
				{
					$position= strpos($clean, $key);
					if($position>400)
					{
						$begin= $position-100;
						$end=400;
						while(substr($donneesDcrip,$begin,1) != ' ')
							$begin--;
						while(substr($donneesDcrip,$end,1) != ' ')
							$end++;
						$dcrip= $begin."... ".substr(strip_tags($donneesDcrip, '<p><br><br/>'), $begin, $end)." ...";
					}
 
					elseif($position<=400)
					{
						while(substr($donneesDcrip,$end,1) != ' ')
							$end++;
						$dcrip= substr(strip_tags($donneesDcrip, '<p><br><br/>'), 0, $end)." ...";
					}
				}
 
				elseif(strlen($clean)<=400)
					$dcrip= strip_tags($donneesDcrip, '<p><br><br/>');
			}//endif
 
			else
			{
				if(strlen($clean)>400)
				{
					while(substr($donneesDcrip,$end,1) != ' ')
						$end++;
					$dcrip= substr(strip_tags($donneesDcrip, '<p><br><br/>'), 0, $end)." ...";
				}
				elseif(strlen($clean)<=400)
					$dcrip= $donneesDcrip;
			}//endelse
			return $dcrip;
		}//endfunction	
 
		if($checkeventos != 'on' AND $checkrecursos != 'on' AND $checknoticias != 'on')
			$result= "<div class=head>Selectionne un champ au maximum</div>";
 
		if($checkeventos == 'on')
		{
			mysql_query("SET NAMES 'utf8';");
			$query1= mysql_query("SELECT id, title, description, address FROM evenement
				WHERE (title REGEXP '$key') OR
				(description REGEXP '$key') OR
				(address REGEXP '$key')");
 
			$total1= mysql_num_rows($query1);
			$result1.= "<div class='head'>Mot clé : <span class='pesq'><strong>".$key."</strong></span></div>
						<br/><div class='todoresult'><strong>".$total1."</strong> resultado(s) nos eventos</div><br/><br/>";	
			while ($donnees1= mysql_fetch_array($query1))
			{
				$pass1= $donnees1[id]."<div class='result'><div class='title'>".$donnees1[title]."</div><br/><div class='description'>".prout($donnees1[description])."</div><br/><div class='address'>".$donnees1[address]."</div></div><br/><hr/>";
				$result1.= preg_replace("#$key#i", "<span class='pesq'>$0</span>",$pass1); //pour que mon mot clé ait une couleur
			}//endwhile
		}//endif
 
	echo $result1;
?>