IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

simple moteur de recherche


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre du Club
    Femme Profil pro
    etudiante
    Inscrit en
    Octobre 2011
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : etudiante
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 61
    Points : 46
    Points
    46
    Par défaut simple moteur de recherche
    salut,
    je suis entrain de developper un petit moteur de recherche
    mais j'ai toujours ce probleme qui s'affiche
    Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\Program Files\EasyPHP-5.3.8.0\www\rentacar\fonction.php on line 19
    voila ma fonction.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    <?php 
    mysql_connect("localhost", "root", "") or die("Impossible de se connecter à la base de
    données");
    mysql_select_db("recherche") or die("base inexistante");
    function resultat_recherche($search)
    {
        $ou="";
    	$search=preg_split('/[\s]+/',$search);
    	$total_resultat=count($search);
    	foreach($search as $key=>$searches)
    	{
    		$ou.="mot_clé LIKE '%$searches%'";
    		if($key!=($total_resultat-1))
    		{
    			$ou.=" AND ";
    		}
    	}
    	$query=mysql_query("SELECT* FROM moteurderecherche WHERE $ou");
    	$rows=mysql_num_rows($query);
    	if($rows)
    	{
    		while($row=mysql_fetch_assoc($query))
    		{
    			echo $row['mot_clé']."<br/>".$row['info']."<br/>";
    		}
    	}
    	else 
    	{
    		echo " pas de résultat pour ".$searches;
    }
    }
    ?>
    et mon code search.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <?php
    mysql_connect("localhost", "root", "") or die("Impossible de se connecter à la base de
    données");
    mysql_select_db("recherche") or die("base inexistante");
    include('fonction.php');
    if (isset($_POST['submit']))
    {
    	$search=mysql_real_escape_string(htmlentities(trim($_POST['search'])));
    	if(empty($search))
    	{
    		$error[]="vueillez saisir une recherche";
    	}
    	elseif(strlen($search)<2)
    	{
    		$error[]="Veuillez insérer une recherche plus détaillé";
    	}
    	if (empty($error))
    	{
    	resultat_recherche($search);
    	}
    	else
    	{
    		foreach($error as $errors)
    		{
    			echo $errors."<br/>";
    		}
    	}
    }
    	?>
    est ce quelqu'un peut m'aider?
    merci d'avance

  2. #2
    Membre éprouvé Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2010
    Messages : 573
    Points : 915
    Points
    915
    Par défaut
    ta requete retourne false...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    <?php 
    mysql_connect("localhost", "root", "") or die("Impossible de se connecter à la base de
    données");
    mysql_select_db("recherche") or die("base inexistante");
    function resultat_recherche($search)
    {
        $ou="";
    	$search=preg_split('/[\s]+/',$search);
    	$total_resultat=count($search);
    	foreach($search as $key=>$searches)
    	{
    		$ou.="mot_clé LIKE '%$searches%'";
    		if($key!=($total_resultat-1))
    		{
    			$ou.=" AND ";
    		}
    	}
            echo "SELECT* FROM moteurderecherche WHERE $ou";// que tu testes sous phpmyadmin
    	/*$query=mysql_query("SELECT* FROM moteurderecherche WHERE $ou");
    	$rows=mysql_num_rows($query);
    	if($rows)
    	{
    		while($row=mysql_fetch_assoc($query))
    		{
    			echo $row['mot_clé']."<br/>".$row['info']."<br/>";
    		}
    	}
    	else 
    	{
    		echo " pas de résultat pour ".$searches;
    }*/
    }
    ?>
    fais un echo sur ta requete comme plus dans le code et vois la syntaxe quitte à la tester sous phpmyadmin...
    Développeur informatique contrarié...

  3. #3
    Membre du Club
    Femme Profil pro
    etudiante
    Inscrit en
    Octobre 2011
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : etudiante
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 61
    Points : 46
    Points
    46
    Par défaut
    c'est exactement ce que j'ai fait ma requête fonctionne normalement mais le probléme est venant de mysql_num_rows()
    lorsque je fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $rows=mysql_num_rows($query)  or die("erreur");
    c 'est erreur qui s'affiche
    je sais pas pourquoi elle ne fonctionne pas .

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 3
    Points : 4
    Points
    4
    Par défaut une reponse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
     
    <?php
    function resultat_recherche($search)
    {
     
        mysql_connect("localhost", "root", "") or die("bdd données");
        mysql_select_db("annonces") or die("base inexistante");
     
    	$ou="";
    	$search=mysql_real_escape_string($search);
    	$search=preg_split('/[\s]+/',$search);
    	$total_resultat=count($search);
     
    	if(!empty($total_resultat) && $total_resultat>5){
     
    	/*rien à faire soit trop de mots ou aucun*/
     
    	}else{
     
     
    	$s=null;
     
    	foreach($search as $key => $searches)
    	{
    		$ou.="contenu LIKE '%$searches%'";
    		if($key!=($total_resultat-1))
    		{
    			$ou.=" AND ";
    		}
     
    	$s.="  ".$searches;
     
    	}
     
    	if($query=mysql_query("SELECT * FROM mesannonces WHERE $ou")){
    	$rows=mysql_num_rows($query);
    	}else{
    	/*err*/
    	}
     
    	if($rows>0)
    	{
    		while($row=mysql_fetch_assoc($query))
    		{
    			echo $row['contenu']."<br/>".$row['id']."<br/>";
    		}
    	}
    	else 
    	{
    		echo " pas de résultat pour ".$s;
        }
     
    	}
    /*fin function*/
    }
     
    if (isset($_POST['submit']))
    {
    	$search=htmlentities(trim($_POST['search']));
    	if(empty($search))
    	{
    		$error[]="vueillez saisir une recherche";
    	}
    	elseif(strlen($search)<2)
    	{
    		$error[]="Veuillez insérer une recherche plus détaillé";
    	}
    	if (empty($error))
    	{
    	resultat_recherche($search);
    	}
    	else
    	{
    		foreach($error as $errors)
    		{
    			echo $errors."<br/>";
    		}
    	}
    }
    ?>
    <form action="" method="post">
    <input type="text" name="search">
    <input type="submit" value="recherche" name="submit">
    </form>
    Bonjour un peu en retard mais ça peut servir ... j'ai essayé ainsi et ça fonctionne ++

Discussions similaires

  1. [AC-2007] Créer moteur de recherche (pas si simple)
    Par black queen dans le forum IHM
    Réponses: 29
    Dernier message: 21/05/2012, 16h44
  2. moteur de recherche SIMPLE
    Par lynnaryas dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 15/04/2012, 13h58
  3. [MySQL] Simple moteur de recherche qui retourne aucun résultat si plus de 1 mot clef
    Par yule dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 03/06/2010, 20h17
  4. [SQL] Moteur de recherche ultra simple ?
    Par Jiraiya42 dans le forum PHP & Base de données
    Réponses: 19
    Dernier message: 12/10/2006, 18h03
  5. [MySQL] Créer un moteur de recherche simple ?
    Par eXe|xTn dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 30/04/2006, 00h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo