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 :

recherche approché à partir de la base de donnée


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 22
    Par défaut recherche approché à partir de la base de donnée
    j'ai essaye depuis longtemps de faire un script pour la recherche interne de la site web mais malheureusement le script ne marche pas je presente ce script de recherche
    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
     
    <?php
    echo'<form id="form1" name="form1" method="post" action="searchauto.php">
    <div id="divzonerecherche">
    <form id="form1" name="form1" method="post" action="searchauto.php">
    <p class="fontbold">Recherche une fiche par mot cl&egrave;s : 
    <input name="vrecherche" type="text" value="" class="divtexte" />
    <input name="butrech" type="submit" value="valider" class="divbutton"/><p>
    </div>';
    if(empty($_POST['vrecherche']))
    {
    $i=0;
    $connect = mysql_connect('localhost','root','') or die ("erreur de connexion");
    mysql_select_db('ceremh',$connect) or die ("erreur de connexion base");
    setlocale (LC_ALL, 'fr_FR'); 
    $result = mysql_query("SELECT *,DATE_FORMAT(date_creation, '%d %m %Y') AS datecreation,DATE_FORMAT(date_miseajour, '%d %m %Y') AS datemise from fiche") ;
    $mois=array("01"=>"Janvier","02"=>"Février","03"=>"Mars","04"=>"Avril","05"=>"Mai","06"=>"Juin","07"=>"juillet","08"=>"Août","09"=>"Septembre","10"=>"Octobre","11"=>"Novembre","12"=>"Décembre"); 
    while ($row = mysql_fetch_array($result)){
    if($i %2 == 0)
    $bgcolor = "#969696";
    else
    $bgcolor = "#D5D5D5";
    list($day,$month,$year) = explode(" ", $row["datecreation"]); 
    list($day,$month,$year) = explode(" ", $row["datemise"]); 
    $row["datecreation"] = $day .' '. $mois[$month] .' '. $year;
    $row["datemise"] = $day .' '. $mois[$month] .' '. $year;
    echo'<div class="information" style="background-color:'.$bgcolor.'">
    <p><h4>Titre de document :'.$row["Nom_fiche"].'<span class="dateac"> Date de creation:'.$row["datecreation"].'</span></h4></p>
    <p class="dateac"> Date de mise &agrave; jour : '.$row["datecreation"].'</p>
    <p>'.$row["Commentaire"].'</p>
    <p><a href="'.$row["liendoc"].'" Target="_blank">Voir le document</a>
    </div>';
    $i++;
    }
    mysql_close();
    }	
    else
    $i=0;
    $connect = mysql_connect('localhost','root','') or die ("erreur de connexion");
    mysql_select_db('ceremh',$connect) or die ("erreur de connexion base");
    setlocale (LC_ALL, 'fr_FR'); 
    $text=$_POST['vrecherche'];
    $result = mysql_query("SELECT *,DATE_FORMAT(date_creation, '%d %m %Y') AS datecreation,DATE_FORMAT(date_miseajour, '%d %m %Y') AS datemise from fiche where Nom_fiche LIKE '%".$text."%' or Commentaire LIKE '%".$text."%'") ;
    $mois = array("01"=>"Janvier","02"=>"Février","03"=>"Mars","04"=>"Avril","05"=>"Mai","06"=>"Juin","07"=>"juillet","08"=>"Août","09"=>"Septembre","10"=>"Octobre","11"=>"Novembre","12"=>"Décembre"); 
    while ($row = mysql_fetch_array($result)){
    if($i %2 == 0)
    $bgcolor = "#969696";
    else
    $bgcolor = "#D5D5D5";
    list($day,$month,$year) = explode(" ", $row["datecreation"]); 
    list($day,$month,$year) = explode(" ", $row["datemise"]); 
    $row["datecreation"] = $day .' '. $mois[$month] .' '. $year;
    $row["datemise"] = $day .' '. $mois[$month] .' '. $year;
    echo'<div class="information" style="background-color:'.$bgcolor.'">
    <p><h4>Titre de document :'.$row["Nom_fiche"].'<span class="dateac"> Date de creation:'.$row["datecreation"].'</span></h4></p>
    <p class="dateac"> Date de mise à jour : '.$row["datecreation"].'</p>
    <p>'.$row["Commentaire"].'</p>
    <p><a href="'.$row["liendoc"].'" Target="_blank">Voir le document</a>
    </div>';
    $i++;
    }
    mysql_close();
    echo'</form>';
    ?>
    plus que ce code qui ne marche pas j'ai deux question
    comment je peux savoir les mots entrée par l'utilisateur pour chercher sur son besoin ?
    2- comment je peux colorer le mot recherché dans la chaine de résultat?

  2. #2
    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
    Déjà en faisant un peu de ménage, ça devrait un peu mieux fonctionner :

    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
    <div id="divzonerecherche">
    	<form id="form1" name="form1" method="post" action="searchauto.php">
    		<p class="fontbold">Recherche une fiche par mot cl&egrave;s : 
    		<input name="vrecherche" type="text" value="" class="divtexte" />
    		<input name="butrech" type="submit" value="valider" class="divbutton"/><p>
    	</form>
    </div>
     
    <?php
     
    $connect = mysql_connect('localhost','root','') or die ("erreur de connexion");
    mysql_select_db('ceremh',$connect) or die ("erreur de connexion base");
    setlocale (LC_ALL, 'fr_FR');
     
    if (!isset($_POST['vrecherche']) || empty($_POST['vrecherche']))
    {
    	$requete = "SELECT *, DATE_FORMAT(date_creation, '%d %m %Y') AS datecreation, DATE_FORMAT(date_miseajour, '%d %m %Y') AS datemise from fiche";
    }
    else
    {
    	$text = $_POST['vrecherche'];
    	$requete = "SELECT *, DATE_FORMAT(date_creation, '%d %m %Y') AS datecreation, DATE_FORMAT(date_miseajour, '%d %m %Y') AS datemise from fiche where Nom_fiche LIKE '%".$text."%' or Commentaire LIKE '%".$text."%'"
    }
    $result = mysql_query($requete) or die ('Erreur sur '.$requete.'<br/>'.mysql_error());
     
    $mois = array("01"=>"Janvier","02"=>"Février","03"=>"Mars","04"=>"Avril","05"=>"Mai","06"=>"Juin","07"=>"juillet","08"=>"Août","09"=>"Septembre","10"=>"Octobre","11"=>"Novembre","12"=>"Décembre");
     
    $i=0;
    while ($row = mysql_fetch_array($result)){
    	if($i %2 == 0)
    		$bgcolor = "#969696";
    	else
    		$bgcolor = "#D5D5D5";
     
    	list($day,$month,$year) = explode(" ", $row["datecreation"]);
    	$datecreation = $day .' '. $mois[$month] .' '. $year;
     
    	list($day,$month,$year) = explode(" ", $row["datemise"]);
    	$datemise = $day .' '. $mois[$month] .' '. $year;
     
    	echo '<div class="information" style="background-color:'.$bgcolor.'">';
    	echo '<p><h4>Titre de document :'.$row["Nom_fiche"].'<span class="dateac"> Date de creation:'.$datecreation.'</span></h4></p>';
    	echo '<p class="dateac"> Date de mise à jour : '.$datemise.'</p>
    	<p>'.$row["Commentaire"].'</p>
    	<p><a href="'.$row["liendoc"].'" Target="_blank">Voir le document</a></p>';
    	echo '</div>';
    	$i++;
    }
    mysql_close();
    ?>
    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]

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 22
    Par défaut
    merci bcp
    la fonction de recherche marche parfaitement
    mais comment je peux colorer le mots recherché dans la résulat??
    dans la résultat, les mots qui ont les caractére comme (é,è...)à été remplacer par ? comment je peux résoudre ce probléme?

Discussions similaires

  1. réplication à partir d'une base de données heterogène
    Par elbennaoui dans le forum Réplications
    Réponses: 1
    Dernier message: 16/11/2005, 16h05
  2. afficher une image à partir d'une base de données access
    Par zidenne dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/11/2005, 11h41
  3. [MySQL] Afficher une photo à partir de la base de données
    Par microcongo dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 07/09/2005, 17h29
  4. Créer des clés informatiques à partir d'1 base de données??
    Par Flateric dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 11/02/2005, 07h49

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