Les Allergies
Alimentaires
Posez votre question Signaler

Moteur de recherche PHP Mysql

yasean - Dernière réponse le 8 juin 2011 à 15:06
Bonjour,
J'essaye de faire marcher un moteur de recherche mais je rencontre des problèmes concernant le Code.
ça serai sympa de bien vouloir jeter un coup d'oeil et me dire ou est la faute.
Je vous remercie d'avance .
<?php
mysql_connect("localhost","root","");
	mysql_select_db("SPIP");
// Récupère la variable
if(isset($_POST['ville']) || isset($_POST['theme']) || isset($_POST['type']) || isset($_POST['nomcat']) || isset($_POST['noment']))
	{
		if($_POST['ville']!=NULL || $_POST['theme']!=NULL || $_POST['type']!=NULL || $_POST['nomcat']!=NULL || $_POST['nomcat']!=NULL)
	{
	$ville=_request('$ville');
	$nomcat=_request('nomcat');
	$theme=_request('theme');
	$type=_request('type');
	$noment=_request('noment');
// la requete mysql
$sql = mysql_query(
"SELECT 'nomser' FROM 'entreprise' , 'service' , 'categorie'
WHERE entreprise.noment LIKE %$noment%" . " OR entreprise.ville LIKE %$ville%" . " 
OR service.theme LIKE %$theme%". " OR service.type LIKE %$type%" . " 
OR categorie.nomcat LIKE %$nomcat%
GROUP BY 'nomser'") or die (mysql_error());
}}
// affichage du résultat
while(list($nomser)=mysql_fetch_array($sql)){
echo 'Resultat de la recherche: '.$nomservice.',  <br />';
}
?>
Lire la suite 

Moteur de recherche PHP Mysql »

6 réponses
Réponse
+0
moins plus
Bonjour,

Dans vos tests vous mettez des || c'est à dire des ou, donc tous les champs ne sont pas forcément renseignés, voir définis donc ici
        $ville=_request('$ville');
	$nomcat=_request('nomcat');
	$theme=_request('theme');
	$type=_request('type');
	$noment=_request('noment');


vous pouvez avoir un undefined index

Ensuite ici
LIKE %$noment%" . " OR entreprise.ville LIKE %$ville%" 


A remplacer par ceci, il faut des cotes pour les chaînes de caractères

LIKE '%$noment%' OR entreprise.ville LIKE '%$ville%' OR categorie.nomcat LIKE '%$nomcat%'


Ajouter un commentaire
Réponse
+0
moins plus
Salut ...
Essaye ça ... Juste pour voir :)

<?php
mysql_connect("localhost","root","");
mysql_select_db("SPIP");
$nbre_champs = 5;
if(empty()) {
    
}
if(empty($_POST['ville'])) {
    $ville = "";
    $nbre_champs--;
}
else $ville = $_POST['ville'];

if(empty($_POST['theme'])) {
    $theme = "";
    $nbre_champs--;
}
else $theme = $_POST['theme'];

if(empty($_POST['type'])) {
    $type = "";
    $nbre_champs--;
}
else $type = $_POST['type'];

if(empty($_POST['nomcat'])) {
    $nomcat = "";
    $nbre_champs--;
}
else $nomcat = $_POST['nomcat'];

if(empty($_POST['noment'])) {
    $noment = "";
    $nbre_champs--;
}
else $noment = $_POST['noment'];

if($nbre_champs != 0) {
    $sql = mysql_query(
    "SELECT * FROM 'entreprise' , 'service' , 'categorie' WHERE
      entreprise.noment LIKE %$noment% " . 
      "OR entreprise.ville LIKE %$ville% " .
      "OR service.theme LIKE %$theme% " .
      "OR service.type LIKE %$type% ".
      "OR categorie.nomcat LIKE %$nomcat%")
    or die (mysql_error());

    // affichage du résultat
    while($donnees = mysql_fetch_array($sql)){
       if(isset($donnees['noment']))
           echo 'Entreprise (Nom) : '.$donnees['noment'].'<br>';
       if(isset($donnees['ville']))
           echo 'Entreprise (Ville) : '.$donnees['ville'].'<br>';
       if(isset($donnees['theme']))
           echo 'Service (Theme) : '.$donnees['theme'].'<br>';
       if(isset($donnees['type']))
           echo 'Service (Type) : '.$donnees['type'].'<br>';
       if(isset($donnees['nomcat']))
           echo 'Categorie (Nom) : '.$donnees['nomcat'].'<br>';
    }
}
yassine - 8 juin 2011 à 14:49
<?php
mysql_connect("localhost","root","");
	mysql_select_db("SPIP");
// Récupère la variable
if( isset($_POST['theme']) || isset($_POST['type']))
	{
		if($_POST['theme']!=NULL || $_POST['type']!=NULL )
	{
$recherche = isset($_POST['theme']) AND !empty($_POST['theme']);
// la requete mysql
$sql = mysql_query(
"SELECT 'nomser' FROM 'service'
WHERE service.theme LIKE '%$theme%' 
OR service.type LIKE '%$type%'
GROUP BY 'nomser'") or die (mysql_error());


// affichage du résultat

echo 'Resultat de la recherche: '.$nomser.' <br />';

}
}
?>
yassine - 8 juin 2011 à 15:04
Voila j galère encore avec ce moteur de recherche Simple : ça ne me retourne pas ce que je veux ca me retourne la totalité des champs je ne sais pas pourquoi ?!

<?php
mysql_connect("localhost","root","");
mysql_select_db("SPIP");
$nbre_champs = 5;

if(!empty($_POST['theme']) || !empty($_POST['type'])) {
   


   


if($nbre_champs != 0) {
    $sql = mysql_query(
    "SELECT 'nomser' FROM 'service' 
	WHERE service.theme LIKE '%$theme%' 
	OR service.type LIKE '%$type%' 
	  GROUP BY 'nomser'")
    or die (mysql_error());

    // affichage du résultat
    while($donnees = mysql_fetch_array($sql)){
       if(isset($donnees['nomser']))
           echo 'Service (Nom) : '.$donnees['nomser'].'<br>';
    }
}
}
?>
JooS- 8 juin 2011 à 15:06
Ton script n'a aucun sens, explique ce que tu veut faire !!!
La syntaxe que t'utilise est vraiment bizarre ....
Pourquoi créer la variable $recherche alors que tu ne l'utilise même pas ...

A propos du script que j'ai créer, bien sure qu'il t'affiche pleins de résultats, c'est t'as requête qui est faite ainsi, d'ailleurs quand on dit un moteur de recherche, ce n'est pas obligatoire qu'il y ait qu'un seul résultat, mais aussi plusieurs ...
Ajouter un commentaire
Ce document intitulé « Moteur de recherche PHP Mysql » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?