Bonjour,
Ce petit moteur de recherche fonctionne bien mais il ne m'affiche que les deux premiers champs (nomcompo et oeuvre) et pas professeur.nom dans les résultats...
Merci de votre aide.
Modifié par whynote (03 Nov 2010 - 12:12)
Ce petit moteur de recherche fonctionne bien mais il ne m'affiche que les deux premiers champs (nomcompo et oeuvre) et pas professeur.nom dans les résultats...
Merci de votre aide.
<?php require_once('Connections/cours.php'); ?>
<?php
mysql_select_db($database_cours, $cours);
//On determine l'expression a rechercher
if(isset($_GET['recherche']))
{
$rec = $_GET['recherche'];
}
else
{
$rec = 'chopin';
}
//On determine le type de recherche
if(isset($_GET['type']))
{
if($_GET['type']=='un')//Un des mots
{
$type = 1;
}
elseif($_GET['type']=='tout')//Tout les mots
{
$type = 2;
}
}
else
{
$type = 2;//type par defaut: L'expression exacte
}
//On determine si on doit surligner les mots dans les resultats
if(!isset($_GET['surligner']) or $_GET['surligner']!='true')
{
$surligner = true;
}
$req = 'SELECT cours.nomcompo, cours.oeuvre, professeurs.nom FROM cours, professeurs WHERE cours.professeurID=professeurs.id AND';
if($type==1)
{//ayant un des mots dans leurs informations
$mots = explode(' ',$rec);//En separre lexpression en mots cles
foreach($mots as $mot)
{
$req .= ' cours.oeuvre LIKE "%'.$mot.'%" OR cours.nomcompo LIKE "%'.$mot.'%" OR professeurs.nom LIKE "%'.$mot.'%" OR';
}
$req .= ' 1=0';
}
elseif($type==2)
{//ayant tout des mots dans leurs informations
$mots = explode(' ',$rec);//En separre lexpression en mots cles
foreach($mots as $mot)
{
$req .= ' (cours.oeuvre LIKE "%'.$mot.'%" OR cours.nomcompo LIKE "%'.$mot.'%" OR professeurs.nom LIKE "%'.$mot.'%" ) AND';
}
$req .= ' 1=1';
}
$req .= ' order by nomcompo asc';
$requete = mysql_query($req) or die(mysql_error());
?>
<form action="" method="get">
Expression à rechercher: <input type="text" name="recherche" value="<?php echo $rec; ?>" /><br />
Type de recherche: <input type="radio" name="type" value="un"<?php if($type==1){echo 'checked="checked"';} ?> /> Un des mots <input type="radio" name="type" value="tout"<?php if($type==2){echo 'checked="checked"';} ?> />
Tout les mots
<input type="submit" value="Rechercher" />
</form>
<h2>Résultats</h2>
<table>
<tr>
<th>Compositeur</th>
<th>Oeuvre</th>
<th>Professeur</th>
</tr>
<?php
//On affiche les resultats
while($req = mysql_fetch_array($requete))
{
?>
<tr>
<td><?php echo preg_replace('#('.str_replace(' ','|',preg_quote($rec)).')#i', '<strong>$1</strong>', $req['nomcompo']); ?></td>
<td><?php
echo preg_replace('#('.str_replace(' ','|',preg_quote($rec)).')#i', '<strong>$1</strong>', $req['oeuvre']); ?></td>
<td><?php
echo preg_replace('#('.str_replace(' ','|',preg_quote($rec)).')#i', '<strong>$1</strong>', $req['professeurs.nom']); ?></td>
</tr>
<?php
}
?>
</table>
Modifié par whynote (03 Nov 2010 - 12:12)