Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 4 sur 4
  1. #1
    Candidat au titre de Membre du Club
    Femme Profil pro
    etudiante
    Inscrit en
    octobre 2011
    Messages
    60
    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 : 60
    Points : 12
    Points
    12

    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 :
    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 :
    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 émérite Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    août 2010
    Messages
    594
    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 : 594
    Points : 895
    Points
    895

    Par défaut

    ta requete retourne false...
    Code :
    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
    Candidat au titre de Membre du Club
    Femme Profil pro
    etudiante
    Inscrit en
    octobre 2011
    Messages
    60
    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 : 60
    Points : 12
    Points
    12

    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 :
    $rows=mysql_num_rows($query)  or die("erreur");
    c 'est erreur qui s'affiche
    je sais pas pourquoi elle ne fonctionne pas .

  4. #4
    Invité de passage
    Inscrit en
    novembre 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : novembre 2006
    Messages : 3
    Points : 4
    Points
    4

    Par défaut une reponse

    Code :
    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 ++

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •