18043 sujets
Questions générales et questions de débutants
Salut,
Faire ton propre moteur de recherche pour ton site va te demander d'avoir une connaissance avancée de php. Il existe peut être des "kits de script de moteur de recherche", mais je doute qu'ils soient forcément simple à adapter.
La question est de savoir si tu as ou non une connaissance avancée de php ?
Faire ton propre moteur de recherche pour ton site va te demander d'avoir une connaissance avancée de php. Il existe peut être des "kits de script de moteur de recherche", mais je doute qu'ils soient forcément simple à adapter.
La question est de savoir si tu as ou non une connaissance avancée de php ?
si tu veux t'amuser j'ai fais un petit moteur de recherche à toi de l'adapter.
<?php
require_once('./class/class.model.php');
if(isset($_POST['motsCles']) || !empty($_POST['motsCles']))
{
$motsCles=$_POST['motsCles'];
$motsCles = explode(" ",$motsCles);
$query = array();
foreach($motsCles as $motsCles)
{
$query[] = "(
nom LIKE '%".$motsCles."%'
OR image LIKE '%".$motsCles."%'
OR description LIKE '%".$motsCles."%')";
}
$query = implode(" ",$query);
$sql = "SELECT id, nom, image, description FROM produits WHERE $query";
$result = $connection->selectTableau($sql);
//echo $sql;
//echo '::'.count($result).'::';
if ((count($result)=== 0))
{
echo '<span>aucun résultat trouvé avec <strong>'.$_POST['motsCles'].'</strong>, recommencer</span>';
}
else if(count($result) === 1)
{
echo '<div id="nomCategrorie"><p>'.count($result).' résultats avec <strong>'.$_POST['motsCles'].'</strong></div></p>';?>
<table>
<tbody>
<tr>
<th>Numéro</th><th>image</th><th>Nom</th><th>description</th>
</tr>
<?php
$result = $connection->select($sql);
$compte=1;
foreach ($result as $row)
$image=$row['image'];
{?>
<tr>
<td><a href="?page=detailProduit&idProduit=<?php echo $row['id'];?>"><?php echo $compte++;?></a></td>
<td style="text-align:center; postion:absolute; margin-top:200px;">
<strong style="text-align:center; postion:absolute; left:0;">
<?php echo $nom;?>
</strong><br><?php
$tabImage= explode(' ', $image);
if(isset($tabImage[0]) && !empty($tabImage[0]))
{
echo '
<img src="images/'.$tabImage[0].'" height="100px" width="100px"
style="border:3px solid #6495ED" alt="$tabImage[0]" /><br>';
}
else
echo '<img src="img/noImage.jpg" width="100px" alt="Aucune image de description" /><br>';?>
</td>
<td><a href="?page=detailProduit&idProduit=<?php echo $row['id'];?>"><?php echo $row['nom'];?></a></td>
<td><a href="?page=detailProduit&idProduit=<?php echo $row['id'];?>"><?php echo $row['description'];?></a></td>
</tr>
<?php }?>
</tbody>
</table><?php
}
else
{
echo '<div id="nomCategrorie"><p>'.count($result).' résultats avec <strong>'.$_POST['motsCles'].'</strong></div>
</p>';?>
<table>
<tbody>
<tr>
<th>Numéro</th><th>image</th><th>Nom</th><th>description</th>
</tr>
<?php
$result = $connection->select($sql);
$compte=1;
foreach ($result as $row)
{?>
<tr>
<td><a href="?page=detailProduit&idProduit=<?php echo $row['id'];?>"><?php echo $compte++;?></a></td>
<td style="text-align:center; postion:absolute; margin-top:200px;"><?php
$tabImage= explode(' ', $row['image']);
if(isset($tabImage[0]) && !empty($tabImage[0]))
{
echo '
<img src="images/'.$tabImage[0].'" height="100px" width="100px"
style="border:3px solid #6495ED" alt="'.$tabImage[0].'" />';
}
else
echo '<img src="img/noImage.jpg" width="100px" alt="Aucune image de description" /><br>';?>
</td>
<td><a href="?page=detailProduit&idProduit=<?php echo $row['id'];?>"><?php echo $row['nom'];?></a></td>
<td><a href="?page=detailProduit&idProduit=<?php echo $row['id'];?>"><?php echo $row['description'];?></a></td>
</tr>
<?php }?>
</tbody>
</table><?php
}
}?>
Salut,
@xaviou > une recherche à base de LIKE risque d'être méchamment gourmande... Un index FULLTEXT me semble préférable.
pdrou3 a écrit :Juste pour rappel, la fonction de recherche est intégrée à la plupart (tous ?) des CMS.
Je me débrouille, mais pas assez pour me lancer dans un gros projet... Toutefois est-ce que tu aurais une idée ou un alternative pour que j'ai un moteur.
@xaviou > une recherche à base de LIKE risque d'être méchamment gourmande... Un index FULLTEXT me semble préférable.