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


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    etudiant en informatique
    Inscrit en
    Décembre 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : etudiant en informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2013
    Messages : 7
    Par défaut moteur de recherche
    Bonjour a tous.

    j'ai crée un moteur de recherche dans un site une j'ai fait pour une entreprise de construction et lorsque l'internaute tape sa recherche, selon le code php que jai fait, le resultat exacte de sa recherche apparait, si aucun resultat n'est trouvé, des resultats correspondand a un des champ rempli lui sont proposés.
    je vous montre mon code 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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    <?php
    $req_AND = mysql_query("select * from batiment where lieu='$lieu' and superficie='$superf' and prix='$prix'");
    $nombre_de_resultat = mysql_num_rows($req_AND);
    if($nombre_de_resultat == 0){
    	echo "<p align=center><font color=red size=+2>AUCUN RESULTAT NE CORRESPOND A VOTRE RECHERCHE!</font></p>";
    }
    else{
    	while($dnn_AND = mysql_fetch_array($req_AND)){
    		?>
    		<tr>
    			<td bgcolor="#CCCCCC"><?php echo($dnn_AND['id']); ?></td>
    			<td><?php echo htmlentities($dnn_AND['lieu'], ENT_QUOTES, 'UTF-8'); ?></td>
    			<td width="152"><?php echo htmlentities($dnn_AND['superficie'], ENT_QUOTES, 'UTF-8'); ?></td>
    			<td width="132"><?php echo htmlentities($dnn_AND['prix'], ENT_QUOTES, 'UTF-8'); ?></td>
    			<td bgcolor="#CCCCCC" width="152"><?php echo($dnn_AND['description']); ?></td>
     
     
    		</tr>
    	<?php
    	}
    }
    ?>
    	<tr>
    		</table>
    		<BR/><BR/>
    	<HR/>
    	<p><font color="#006600" size="+2">Résultats qui pourraient vous interrésser...</font></p>
    	</table>
    <table width="596" border="1" align="center">
    	<tr>
    		<td width="70" align="center" bgcolor="#FFFFFF">ID</td>
    		<td width="169" align="center" bgcolor="#FFFFFF">LIEU</td>
    		<td align="center" bgcolor="#FFFFFF">SUPERFICIE</td>
    		<td align="center" bgcolor="#FFFFFF">PRIX</td>
    		<td align="center" bgcolor="#FFFFFF">DESCRIPTION</td>
     
    	</tr>
    <?php
    $req = mysql_query("select * from batiment where lieu='$lieu' or superficie='$superf' or prix='$prix'");
    while($dnn = mysql_fetch_array($req)){
    	?>
    	<tr>
    		<td bgcolor="#FFFFFF"><?php echo($dnn['id']); ?></td>
    		<td><?php echo htmlentities($dnn['lieu'], ENT_QUOTES, 'UTF-8'); ?></td>
    		<td width="152"><?php echo htmlentities($dnn['superficie'], ENT_QUOTES, 'UTF-8'); ?></td>
    		<td width="132"><?php echo htmlentities($dnn['prix'], ENT_QUOTES, 'UTF-8'); ?></td>
    		<td bgcolor="#CCCCCC" width="152"><?php echo($dnn['description']); ?></td>
    	</tr>
    <?php
    }
    ?>

    mon souci est que meme lorsque un resultat est trouvé avec la première requete AND, le meme resultat aparait avec la deuxième requete OR; c'est ce que je veux eviter.
    je veux que si la premiere requete s'execute, alors que la deuxième ne s'execute pas. vis versa.

    aidez moi s'il vous plait. merci d'avance

  2. #2
    Membre Expert

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Par défaut
    Fait un test sur le nombre de résultat de ta première requête avec "mysql_num_rows".

    Au passage l'extension Mysql est déprécié, il vaut mieux utiliser l'extension Mysqli ou encore mieux, PDO.

  3. #3
    Membre habitué
    Homme Profil pro
    etudiant en informatique
    Inscrit en
    Décembre 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : etudiant en informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2013
    Messages : 7
    Par défaut hic

    comment faire un test sur mon resultat dans mon code ohp precedent?
    ou mettre ce code de test.

    merci

  4. #4
    Membre Expert

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Par défaut
    En fait je n'avais pas vu mais tu fais déjà un test sur mysql_num_rows, tu n'as qu'à mettre l'ensemble de ta deuxième requête dans ton "else".

  5. #5
    Membre habitué
    Homme Profil pro
    etudiant en informatique
    Inscrit en
    Décembre 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : etudiant en informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2013
    Messages : 7
    Par défaut un peu perdu sur l'emplacement du else
    s'il vous plait ou mettre le "else" pour que mon code fonction comme je l'ai decrit

    un exemple de l'emplacement m'aidrai beaucoup.

    merci pour votre aide jusqu'à maintenan

  6. #6
    Membre Expert

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Par défaut
    Ca demandait pas grand chose quand même...

    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
    <?php
    $req_AND = mysql_query("select * from batiment where lieu='$lieu' and superficie='$superf' and prix='$prix'");
    $nombre_de_resultat = mysql_num_rows($req_AND);
    if ($nombre_de_resultat == 0) {
        echo "<p align=center><font color=red size=+2>AUCUN RESULTAT NE CORRESPOND A VOTRE RECHERCHE!</font></p>";
        ?>
        <HR/>
        <p><font color="#006600" size="+2">Résultats qui pourraient vous interrésser...</font></p>
        </table>
        <table width="596" border="1" align="center">
            <tr>
                <td width="70" align="center" bgcolor="#FFFFFF">ID</td>
                <td width="169" align="center" bgcolor="#FFFFFF">LIEU</td>
                <td align="center" bgcolor="#FFFFFF">SUPERFICIE</td>
                <td align="center" bgcolor="#FFFFFF">PRIX</td>
                <td align="center" bgcolor="#FFFFFF">DESCRIPTION</td>
     
            </tr>
            <?php
            $req = mysql_query("select * from batiment where lieu='$lieu' or superficie='$superf' or prix='$prix'");
            while ($dnn = mysql_fetch_array($req)) {
                ?>
                <tr>
                    <td bgcolor="#FFFFFF"><?php echo($dnn['id']); ?></td>
                    <td><?php echo htmlentities($dnn['lieu'], ENT_QUOTES, 'UTF-8'); ?></td>
                    <td width="152"><?php echo htmlentities($dnn['superficie'], ENT_QUOTES, 'UTF-8'); ?></td>
                    <td width="132"><?php echo htmlentities($dnn['prix'], ENT_QUOTES, 'UTF-8'); ?></td>
                    <td bgcolor="#CCCCCC" width="152"><?php echo($dnn['description']); ?></td>
                </tr>
                <?php
            }
        } else {
            while ($dnn_AND = mysql_fetch_array($req_AND)) {
                ?>
                <tr>
                    <td bgcolor="#CCCCCC"><?php echo($dnn_AND['id']); ?></td>
                    <td><?php echo htmlentities($dnn_AND['lieu'], ENT_QUOTES, 'UTF-8'); ?></td>
                    <td width="152"><?php echo htmlentities($dnn_AND['superficie'], ENT_QUOTES, 'UTF-8'); ?></td>
                    <td width="132"><?php echo htmlentities($dnn_AND['prix'], ENT_QUOTES, 'UTF-8'); ?></td>
                    <td bgcolor="#CCCCCC" width="152"><?php echo($dnn_AND['description']); ?></td>
     
     
                </tr>
                <?php
            }
        }
        ?>
        <tr>
    </table>
    <BR/><BR/>

Discussions similaires

  1. [Info]moteur de recherche full text en environnement j2ee
    Par ddams dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 03/11/2004, 19h39
  2. comment faire ma base de donnée pour un moteur de recherche
    Par HoB dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 04/05/2004, 15h07
  3. Moteur de recherche par date
    Par Prue dans le forum ASP
    Réponses: 17
    Dernier message: 27/08/2003, 16h07
  4. [Technique] Index, comment font les moteurs de recherche ?
    Par bat dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 25/10/2002, 15h41

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