Moteur de recherche
bonjour a tous,
voila j'ai un petit probleme pour mon moteur de recherche. il fonctionne correctement.
je voudrais juste rajouter un message si la requete n'obtient aucun resultat. j'arrive a ecrire un message si le champ recherche est laisse blanc, mais pas dans le cas ou la requete n'aboutit pas.
Un petit peu d'aide serait la bienvenue.
<?php
if($_POST['motcle']== true)
{
$motcle = $_POST['motcle'];
$sql = "SELECT *
FROM shop_article
WHERE shop_article.name LIKE '%$motcle%'
OR shop_article.marque LIKE '%$motcle%'
OR shop_article.description LIKE '%$motcle%'";
$search=mysql_query($sql);
if(!empty($search))
{
while($resultat = mysql_fetch_array($search))
{
echo $resultat['name'] .'<br/>';
echo $resultat['prix'] .'<br/>';
}
}
}
else
{
echo "entrez des donnees pour avoir un resultat!";
}
mysql_close();
?>
na
salut,
$search=mysql_query($sql); <= quoi qu'il arrive $search ne sera pas empty puisque mysql_query retourne false ou une ressource mysql !
par contre tu peut tester si juste $search vaut false afin d'afficher un éventuelle message d'erreur SQL.
Et tester le nombre de tuples retournés par la requete avec
mysql_num_rows
@+
Il en faut peu pour être heureux !!!!!
merci pour l'info du false sur une query.
j'avais deja teste avec false mais ca ne marchait pas. je vais voir ce que je peux faire avec mysql_num_rows.
aurais tu une iddee de comment faire pour que si les donnees entrees dans le formulaire par exemple chaussures que il trouve quand meme le mot chaussure (sans le S), parce que si j'entre un mot plus long que ce qui existe dans mes tables, il ne trouve rien. je sais pas si je suis clair.
encore merci pour l'aide pour le panier j'ai fini par y arriver avec une requete INSERT INTO ... SELECT.
na
merci bcp pour ton aide. J'ai reussi a faire ce que je voulais. reste encore a y integrer quelques option mais j'avance.
voila ce que j'ai fini par faire, c'est peut etre pas un code tres joli mais il est efficasse ^^
<?php
//debut de la fonction pour retenir order_by
function choixParDefault($order)
{
$parDefault='';
if(isset($_POST['order']))
{
if($_POST['order'] == $order)
{
$parDefault='selected="selected"';
}
}
return $parDefault;
}
//------fin de la fonction------
?>
<form method="POST">
<input type="submit" value="order"/>
<Select name="order">
<option value="2" <?php echo choixParDefault('2'); ?>>Prix</option>
<option value="3" <?php echo choixParDefault('3'); ?>>Marque</option>
<option value="4" <?php echo choixParDefault('4'); ?>>Nom</option>
</Select>
</form>
<?php
//creation et definition de la variable $order_by, qui va nous permettre de trier les resultats
if(isset($_POST['order']))
{
if($_POST['order'] == 2)
{$order_by = 'prix';}
elseif($_POST['order'] == 3)
{$order_by = 'marque';}
elseif($_POST['order'] == 4)
{$order_by = 'name';}
}else{
$order_by = 'name';
}
//mise en place de la requete search avec la fonction $order_by pour les trier
$motcle = '';
if($_GET['motcle']) //si l'utilisateur a entrez des donnes dans le formulaire, on lance une requete
{
$motcle = $_GET['motcle'];
$search = mysql_query("SELECT shop_article.name, shop_article.description, shop_article.marque, shop_article.prix
FROM shop_article
WHERE shop_article.name LIKE '%$motcle%'
OR shop_article.description LIKE '%$motcle%'
OR shop_article.marque LIKE '%$motcle%'
ORDER BY $order_by ASC");
if(mysql_num_rows($search) >=1) //si on obtient un resultat on l'affiche
{
while($result=mysql_fetch_array($search))
{
echo $result['name'] . '<br/>';
echo $result['marque'] . '<br/>';
echo $result['description'] . '<br/>';
echo $result['prix'] . '<br/>' . '<hr/>';
}
}else{ echo 'aucun resultat'; //sinon on affiche un message
}
}else{ // si il n'a pas entre des donnees on affiche un message
echo 'entrez des donnees pour effectuer une recherche';
}
mysql_close();
?>
na
Ecrire un message
Votre message vient d'être créé avec succès.
BB-Code
Pour insérer une URL clickable
Pour insérer une adresse E-mail
Pour annoter
Pour écrire du code
Pour faire un lien vers une fonction PHP
Pour écrire du texte préformaté
Pour écrire du texte en gras
Pour écrire du texte en italique
Pour écrire du texte souligné
Pour écrire du texte barré
Pour écrire un titre principal
Pour écrire un titre secondaire
Pour écrire une liste
Smiley
:bond:
:boxe:
:bsmile:
:bump:
:clap:
:coeur:
:cool:
:cry:
:eek:
:evil:
:fleur:
:fou2:
:fou:
:grin:
:grrr:
:hammer:
:hippy:
:hum:
:idee2:
:idee:
:kdo:
:king:
:ko:
:lol:
:love2:
:love:
:mad:
:maitre:
:noel:
:oops:
:raa:
:razz:
:roll:
:sad:
:skull:
:smile:
:timide:
:trink:
:vice:
:vomi:
:wink:
:zzz: