Surligner résultats dans mon tableau

Résolu
augustin78 Messages postés 56 Date d'inscription   Statut Membre Dernière intervention   -  
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous, j'effectue une recherche sql et je présente mes résultats sous forme de tableau:

echo '<td height="22"> </td><td valign="top">'.$row['nom'].' </td><td> </td><td valign="top">'.$row['phrase'].' </tr>';

J'ai 5 variables et j'aimerai faire une recherche dans la colonne phrase pour surligner ces variables qui sont des chaines de caractères je le précise si elles sont présentes dans ma colonne phrase. Merci d'avance.


A voir également:

3 réponses

Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
salut, essaies comme ça:
<?php
$phrase=$row['phrase'];
$patterns = array();
$patterns[0] = '/'.$var1.'/';
$patterns[1] = '/'.$var2.'/';
$patterns[2] = '/'.$var3.'/';
$patterns[3] = '/'.$var4.'/';
$patterns[4] = '/'.$var5.'/';
$replacements = array();
$replacements[0] = '<u>'.$var1.'</u>';
$replacements[1] = '<u>'.$var2.'</u>';
$replacements[2] = '<u>'.$var3.'</u>';
$replacements[3] = '<u>'.$var4.'</u>';
$replacements[4] = '<u>'.$var5.'</u>';
/tu peux mettre en plus si tu veux <b></b> ou <strong>...
$phase_soulignee= preg_replace($patterns, $replacements, $phrase);


echo '<td height="22"> </td><td valign="top">'.$row['nom'].' </td><td> </td><td valign="top">'.$phase_soulignee.' </tr>'; 
0
augustin78 Messages postés 56 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Alain,
j'ai tenté comme tu m'as dit mais ça ne marche pas, sans doutes une erreur de ma part: voici un bout de code plus long:

<?php
 
if ($requete)
{
    echo
<<<'HTML'
<p align=center>
    <table width=700 border=0 cellpadding=0 cellspac ing=0>
        <tr>
            <td width=150 height=19>&nbsp;</td>
            <td width=100>&nbsp;</td>
            <td width=9>&nbsp;</td>
            <td width=5000>&nbsp;</td>
            <td width=12>&nbsp;</td>
            <td width=124>&nbsp;</td>
            <td width=20>&nbsp;</td>
        </tr>
        <tr>
            <td height=22>&nbsp;</td>
            <td valign=top style="background-image: url(ok.png);"><b><p align=center>NOM</p></b>&nbsp;</td>
            <td>&nbsp;</td>
            <td valign=top style="background-image: url(ok.png);"><b><p align=center>NOMBRE DE SYMPTÔMES</p></b>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td height=22>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
HTML;
 
    while ($row = mysql_fetch_array($requete))
    {
        echo
<<<HTML
            <td height="22"> </td>
            <td valign="top">{$row['nom']}</td>
            <td> </td>
            <td valign="top">{$row['symptomes']}</td>
        </tr>
HTML;
    }
 
    echo
<<<'HTML'
        <tr>
            <td height="157">&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
    </table>
</p>
<div>
HTML;
 
    // ici tu es en dehors du while() alors $row = dernier enregistrement de $requete, c'est normal ?
    // relis les explications de sabotage tu devrais y arriver
    $phrase = $row['symptomes'];
    $patterns = array();
    $patterns[0] = '/'.$Sympt1.'/';
    $patterns[1] = '/'.$Sympt2.'/';
    $patterns[2] = '/'.$Sympt3.'/';
    $patterns[3] = '/'.$Sympt4.'/';
    $patterns[4] = '/'.$Sympt5.'/';
    $replacements = array();
    $replacements[0] = '<span style="background-color:red;">'.$Sympt1.'</span>';
    $replacements[1] = '<span style="background-color:red;">'.$Sympt2.'</span>';
    $replacements[2] = '<span style="background-color:red;">'.$Sympt3.'</span>';
    $replacements[3] = '<span style="background-color:red;">'.$Sympt4.'</span>';
    $replacements[4] = '<span style="background-color:red;">'.$Sympt5.'</span>';
    $phase_soulignee= preg_replace($patterns, $replacements, $phrase);
}

je précise que des fois mes variables $Sympt1 ou 2 ou 3 peuvent être vide je sais pas si ça peut empêcher le remplacement...
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
oui c'est possible ?

alors essaies comme ça:
$phrase = $row['symptomes'];
    $patterns = array();
	 $replacements = array();
	$i=0;
	if($Sympt1 !=""){
		$patterns[$i] = '/'.$Sympt1.'/';
		 $replacements[$i] = '<span style="background-color:red;">'.$Sympt1.'</span>';
		 $i++;
	}
	if($Sympt2 !=""){
		$patterns[$i] = '/'.$Sympt2.'/';
		 $replacements[$i] = '<span style="background-color:red;">'.$Sympt2.'</span>';
		 $i++;
	}
	if($Sympt3 !=""){
		$patterns[$i] = '/'.$Sympt3.'/';
		 $replacements[$i] = '<span style="background-color:red;">'.$Sympt3.'</span>';
		 $i++;
	}
	if($Sympt4 !=""){
		$patterns[$i] = '/'.$Sympt4.'/';
		 $replacements[$i] = '<span style="background-color:red;">'.$Sympt4.'</span>';
		 $i++;
	}
	if($Sympt5 !=""){
		$patterns[$i] = '/'.$Sympt5.'/';
		 $replacements[$i] = '<span style="background-color:red;">'.$Sympt5.'</span>';
		 $i++;
	}
   
    $phase_soulignee= preg_replace($patterns, $replacements, $phrase);
0