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

PHP & Base de données Discussion :

moteur de recherche affichant tout le contenu de la table [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé Avatar de alicia26
    Inscrit en
    Avril 2007
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 321
    Par défaut moteur de recherche affichant tout le contenu de la table
    salut à tous!
    ce moteur de recherche m'affiche tout le contenu de ma table sans prendre en compte les mots clés saisis dans le formulaire!
    Pouvez vous y jeter un coup d'oeil, s'il vous plait!
    Merci.

    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
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
     
    <html>
    <body>
    <form method="post" action="search2.php">
     
    Entrez un mot clé:<br>
     
    <input type="text" name="Mot" size="15">
     
    <input type="submit" value="Rechercher" alt="Lancer la recherche!">
     
    </form>
    <?php
    $host = "localhost";
     
    $user = "root";
     
    $password = "";
     
    $bdd = "catalogue";
     
    mysql_connect($host, $user, $password) or die ("Connexion au serveur impossible");
     
    // on choisit la bonne base
    mysql_select_db($bdd) or die ("Connexion a la base impossible");
     
    echo "
    <html>
    
    <head>
    
    <title>Résultat de la recherche</title>
    
    </head>
    
    <body>";
     
    //recuperation de la variable du formulaire
    $Mot = isset($_POST['Mot']) ? $_POST['Mot'] : '';
    if (($Mot == "")||($Mot == "%")) {
    // Si aucun mot clé n'a été saisi,
    // le script demande à l'utilisateur
    // de bien vouloir préciser un mot clé
     
    	//echo "
    	//Veuillez entrer un mot clé s'il vous plaît!
     
    // On selectionne les enregistrements contenant le mot clé
    // dans les keywords ou le titre
    	$query = "SELECT distinct count(*) FROM sousproduit
    	WHERE nom_sousproduit LIKE \"%$Mot%\"
    	";
     
    	$result = mysql_query($query);
     
    	$row = mysql_fetch_row($result);
     
    	$Nombre = $row[0];
     
    // Si aucun enregistrement n'est retourné,
    // on affiche un message adéquat
    if ($Nombre == "0") {
    	echo "
    	<h2>Aucun résultat ne correspond à votre recherche</h2>
    ";
     
    }
     
    // Sinon, on affiche le nombre d'enregistrements correspondant
    // et les résultats eux-mêmes
    else {
    	$query = "SELECT distinct nom_sousproduit FROM sousproduit
    	WHERE nom_sousproduit LIKE \"%$Mot%\"
    ";
     
    	$result = mysql_query($query);
     
    	// Si un seul enregistrement est trouvé, on affiche un message au singulier
    	if ($Nombre == "1") {
    	echo "
    	<a name=\"#resultat\"><h2>Résultat: Un article trouvé</h2></a>
    
    	<p>";
     
    	}
    	// Dans le cas contraire le message est au pluriel...
    	else {
    	echo "
    	<a name=\"#resultat\"><h2>Résultat: $Nombre articles trouvés</h2></a>
    
    	<p>";
     
    	}
    	while ($row = mysql_fetch_object($result))
    	{
    		echo $row->nom_sousproduit;
     
    	}
    }
     
    }
     
    // on ferme la base
    mysql_close();
     
    ?>
     
    </body>
     
    </html>

  2. #2
    Membre Expert
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Par défaut
    Bonsoir,
    Essayes de modifier ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $Mot = isset($_POST['Mot']) ? $_POST['Mot'] : '';
    if (($Mot == "")||($Mot == "%")) {
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if((isset($_POST['Mot'])) && ($_POST['Mot'] <> ""))
    $Mot = $_POST['Mot'];
    Tu peux même ajouter directement les "%" dans ta variable "$Mot" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $Mot = "%".$_POST['Mot']."%";

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Bonjour

    Au premier chargement de la page, il est normal que tu obtiennes toute la liste, vu qu'aucun mot n'a été entré, ce qui te donne comme condition de recherche WHERE nom_sousproduit LIKE \"%%\"

    Au fait, search2.php c'est bien la page courante ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  4. #4
    Membre éclairé Avatar de alicia26
    Inscrit en
    Avril 2007
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 321
    Par défaut
    salut
    et merci pour ta réponse!
    La page affiche toujours tout le contenu de ma table avec cette erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Notice: Undefined variable: Mot in E:\Program Files\EasyPHP 2.0b1\www\search.php on line 53
     
    Notice: Undefined variable: Mot in E:\Program Files\EasyPHP 2.0b1\www\search.php on line 75
    le code fonctionne en partie, en effet en entrant un mot clé dans le formulaire,il me donne un résultat satisfait.
    Mais,c'est la page m'affiche en premier tout le contenu de la base.
    Comment y rémedier?
    ligne 53
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $query = "SELECT distinct count(*) FROM sousproduit
    	WHERE nom_sousproduit LIKE \"%$Mot%\"
    	";
    ligne 75
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $query = "SELECT distinct nom_sousproduit FROM sousproduit
    	WHERE nom_sousproduit LIKE \"%$Mot%\"
    ";

  5. #5
    Membre éclairé Avatar de alicia26
    Inscrit en
    Avril 2007
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 321
    Par défaut
    bonjour Célira
    j'ai compris en effet ce que tu voulais dire.En créant une autre page form.php le résultat est satisfait mais sur deux pages:form.php et search.php
    N'est t-il pas possible d'avoir, et le formulaire de recherche et le résultat en dessous??

  6. #6
    Membre éclairé Avatar de alicia26
    Inscrit en
    Avril 2007
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 321
    Par défaut
    ok,çà marche
    en faisant un "include "form.php"",j'obtiens un résultat satisfait
    merci pour tout!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Moteur de recherche : afficher des suggestions
    Par Benamour Jr dans le forum Langage
    Réponses: 3
    Dernier message: 28/03/2010, 11h07
  2. Afficher tout le contenu d'une page à 80% ?
    Par Mister Paul dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 17/05/2009, 15h38
  3. Afficher tout le contenu d'un Array aléatoirement
    Par hicham285 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 14/09/2008, 18h26
  4. Onglet Afficher tout le contenu du site
    Par guintolli dans le forum SharePoint
    Réponses: 6
    Dernier message: 05/08/2008, 18h16
  5. Bouton Afficher tout le contenu du site
    Par glucas59 dans le forum SharePoint
    Réponses: 3
    Dernier message: 28/04/2008, 11h11

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