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

Langage PHP Discussion :

pblm recherche par mot-clef - mysql_db_query


Sujet :

Langage PHP

  1. #1
    Membre confirmé Avatar de carelha
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 168
    Par défaut pblm recherche par mot-clef - mysql_db_query
    Bonjour,
    j'essaie d'intégrer à un formulaire un champ avec recherche par mot clef.
    Cependant, quand le formulaire est envoyé, rien ne s'affiche, ni les résultats, ni la phrase indiquant qu'il n'y a pas de résultat.
    Est-ce que qqn voit le problème ? C'est d'après une vieille discussion de ce forum.
    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
    <form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="rech">
      <textarea name="recherche" id="recherche"></textarea>
       <input type="submit" name="ok" id="ok" value="Rechercher" />
    </form>
    <?php 
    if
    (isset($_POST['ok'])&&($_POST['ok'])=="Rechercher") 
    {
    // on se connecte à notre base 
    $base = mysql_connect ('localhost', 'xxx', 'xxx');
    mysql_select_db ('xxx', $base);
     
    	if ($recherche=="" or $recherche==" ") 
    	{ 
    	echo"Vous n'avez pas entré de mot clé." ; 
    	} 
    	else 
    	{ 
    	$recherche = $_POST['recherche']; 
    	// on passe les mots recherchés en minuscules 
    	$recherche = strtolower($recherche); 
    	$operateur="and" ; 
    	// on remplace les ' + , : par des espaces 
    	$mots = str_replace('+', ' ', trim($recherche)); 
    	$mots = str_replace('\'', ' ', $mots); 
    	$mots = str_replace(',', ' ', $mots); 
    	$mots = str_replace(':', ' ', $mots); 
    	// on place les differents mots dans un tableau 
    	$tab = explode(' ' , $mots); 
    	//on compte les éléments du tableau. 
    	$nb = count($tab); 
     
    	//on prépare la requête SQL. 
    	$sq1 = "select * from aide_ac where adresse like "; 
     
    		for($i=0 ; $i<$nb; $i++) 
    			{ 
       			if($tab[$i]!="" && strlen($tab[$i])>2) 
    				{ 
          			$sq1.='%'.$tab[$i].'% '; 
       				} 
    			} 
    	$sq1.="or description like "; 
    		for($i=0 ; $i<$nb; $i++) 
    			{ 
       			if($tab[$i]!="" && strlen($tab[$i])>2) 
    				{ 
         			 $sq1.='%'.$tab[$i].'% '; 
       				} 
    			} 
    	//requête 
    	$result = mysql_db_query(xxxx, $sq1); 
    	if ($result) 
    		{ 
    			if (mysql_num_rows($result) == 0) 
    				{ 
    				// Si pas de résultat
    				echo "Pas de Résultat"; 
    				} 
    			else 
    				{ 
    				echo "Résultat(s)"; 
    				while($row = mysql_fetch_array($result)) 
    					{ 
    				echo $row['description']; 
    				echo"<BR>" ; 
    					} 
    		 	mysql_free_result($result); 
    				} 
    		}
    	} // fin du else il y a bien un mot-clef entré
    }// fin du if le formulaire a bien été envoyé
    ?>

  2. #2
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    C'est parce que tu définis pas $recherche au bon endroit (avant de faire le if et pas dans le else).

  3. #3
    Membre confirmé Avatar de carelha
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 168
    Par défaut
    merci, mais ca ne fonctionne pas même en le définissant avant if

  4. #4
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Montre le new code.

  5. #5
    Membre confirmé Avatar de carelha
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 168
    Par défaut
    voilà le début du code, le reste est identique
    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
     
    if
    (isset($_POST['ok'])&&($_POST['ok'])=="Rechercher") 
    {
    // on se connecte à notre base 
    $base = mysql_connect ('xxx', 'xxx', 'xxx');
    mysql_select_db ('xxx', $base);
    	$recherche = $_POST['recherche']; 
    	if ($recherche=="" or $recherche==" ") 
    	{ 
    	echo"Vous n'avez pas entré de mot clé." ; 
    	} 
    	else 
    	{ 
    	// on passe les mots recherchés en minuscules 
    	$operateur="and" ; 
    	// on remplace les ' + , : par des espaces 
    	$mots = str_replace('+', ' ', trim($recherche));
    merci de ton aide

  6. #6
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Le problème c'est que quand tu valides ton FORM une page blanche arrive c'est ça ? Même le formulaire n'est plus affiché ?

  7. #7
    Membre confirmé Avatar de carelha
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 168
    Par défaut
    non, le formulaire reste affiché, mais je n'ai aucun message comme quoi il n'y a pas de réponse, ou comme quoi il y en a.
    le if est ok (je vois ce message d'erreur)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if ($recherche=="" or $recherche==" ") 
    	{ 
    	echo"Vous n'avez pas entré de mot clé." ; 
    	} 
    {
    mais le else ensuite ne fonctionne pas

  8. #8
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Ok je m'étais un peu embrouillé, fais un echo de ta requête ( echo $sql; ) pour voir ce qui est fait, et teste là dans phpmyadmin pour voir si ça fait bien ce que tu veux.

    Tu peux aussi afficher $result car le problème vient sûrement de là (il doit être à false...)

  9. #9
    Membre confirmé Avatar de carelha
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 168
    Par défaut
    merci, ca s'éclaircit un peu. En fait, c'est ma requête qui semble absolument pas reconnue.
    j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if ($result) 
    		{ idem que précédement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    else //pas de result
    		{echo $result; 
    		echo'blablabla';
    		echo $sql;
    		}
    et le else ne m'affiche que "blablabla"

    je vais me repencher sur l'écriture de cette requête.

Discussions similaires

  1. Choix CMS présentation et recherche PDF par mots-clefs
    Par miniil dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 31/07/2012, 11h48
  2. recherche par mots clefs
    Par steph033 dans le forum Excel
    Réponses: 2
    Dernier message: 09/12/2010, 18h09
  3. Recherche par mot clef dans une feuille excel.
    Par takamo dans le forum Excel
    Réponses: 12
    Dernier message: 18/06/2008, 14h35
  4. Comment réaliser une recherche par mot clef ?
    Par mouchkar dans le forum ASP.NET
    Réponses: 2
    Dernier message: 06/09/2006, 11h48
  5. [MySQL] SQL et résultat de recherche par mot clef
    Par carelha dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 18/04/2006, 15h40

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