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 :

Petit problème d'affichage de résultats


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2010
    Messages : 86
    Points : 24
    Points
    24
    Par défaut Petit problème d'affichage de résultats
    Bonjour à tous, je me tourne vers vous pour un petit souci que je rencontre actuellement, je suis entrain de faire un script de recherche (au sein d'une base de donnée).

    les connexions son bonnes, mais le script ne me retourne aucuns résultats, jugez plutôt.

    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
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    <body>
     
    <div class="container">
      <div class="sidebar1">
        <img src="logo.png" width="210" height="132" />
        <p> <u><b>Le but de ce formulaire :</B></u><br />
    Il va rechercher l'information qui à été entrée dans le champ de recherche, de préférence, il faut que ce soit un nom.<br />
    la recherche se fait au sein d'une base de donnée, le script renvoi toutes les entrées qui correspondent au nom entré dans le champ. <br /><br />
    <br />
    <br />
     
    </p>
        <!-- end .sidebar1 --></div>
      <div class="content">
        <h1>Instructions</h1>
        <p> Rentrez un nom dans le champ de recherche, cochez : chercher dans la base de donnée.</p>
     <?php
    mysql_connect('localhost','lucas','bonomi') or die(mysql_error());;
    mysql_select_db('cible');
     
    //On determine l'expression a rechercher
    if(isset($_GET['recherche']))
    {
            $rec = htmlentities($_GET['recherche']);
    }
    else
    {
            $rec = '';
    }
    //On determine le type de recherche
    if(isset($_GET['type']))
    {
            if($_GET['type']=='un')//Un des mots
            {
                    $type = 1;
            }
            elseif($_GET['type']=='tout')//Tout les mots
            {
                    $type = 2;
            }
            else//L'expression exacte
            {
                    $type = 3;
            }
    }
    else
    {
            $type = 1;//type par defaut: L'expression exacte
    }
    //On determine si on doit surligner les mots dans les resultats
    if(!isset($_GET['surligner']) or $_GET['surligner']!='true')
    {
            $surligner = false;
    }
    else
    {
            $surligner = true;
    }
    //On dertermine les identifiants, les noms et les informations des utilisateur
    $req = 'SELECT RAISON SOCIALE, DIRIGEANT FROM liste WHERE ';
     
    if($type==1)
    {//ayant un des mots dans leurs informations
            $mots = explode(' ',$rec);//En separre lexpression en mots cles
            foreach($mots as $mot)
            {
                    $req .= ' RAISON SOCIALE LIKE "%'.$mot.'%" OR';
            }
            $req .= ' 1=1';
    }
    elseif($type==2)
    {//ayant tout des mots dans leurs informations
            $mots = explode(' ',$rec);//En separre lexpression en mots cles
            foreach($mots as $mot)
            {
                    $req .= ' RAISON SOCIALE LIKE "%'.$mot.'%" AND';
            }
            $req .= ' 1=1';
    }
    else
    {//ayant l'expression exacte dans leurs informations
            $req .= ' RAISON SOCIALE LIKE "%'.$rec.'%"';
    }
    //Les utilisateur seront ranges par identifiant en ordre croissant
    $req .= ' ORDER BY ID DESC';
    //echo $req;
    $requete = mysql_query($req);
    //echo $requete;
     
     
     
    //Le formulaire de recherche
    ?>
    <form action="" method="get">
    Expression &agrave; rechercher: <input type="text" name="recherche" value="<?php echo $rec; ?>" /><br />
     recherche dans : | 
     <input type="radio" name="type" value="tout"<?php if($type==2){echo 'checked="checked"';} ?> /> 
     dans la base de données |<br />
    <input type="submit" value="Rechercher" />
     
    </form>
    <h2>R&eacute;sultats</h2>
    <table>
            <tr>
            </tr>
    <?php
    //On affiche les resultats
    while($dnn = @mysql_fetch_array($requete))
    {
    ?>
            <tr>
                    <td><?php echo $dnn['RAISON SOCIALE']; ?></td>
                    <td><?php echo $dnn['DIRIGEANT']; ?></td>
                    <td><?php echo $dnn['ADRESSE']; ?></td>
                    <td><?php echo $dnn['CP']; ?></td>
                    <td><?php echo $dnn['VILLE']; ?></td>
                    <td><?php echo $dnn['TEL']; ?></td>
                    <td><?php echo $dnn['TELECOPIE']; ?></td>
                    <td><?php echo $dnn['EMAIL']; ?></td>
                    <td><?php echo $dnn['EMAIL2']; ?></td>
                    <td><?php echo $dnn['CODE_NAF']; ?></td>
                    <td><?php echo $dnn['LIBELLE_NAF']; ?></td>
                    <td><?php echo $dnn['RUBRIQUE_PROFESSIONNELLE']; ?></td>
     
     
                    <td><b>|||</b>  <?php
    if($surligner)//Si il faut surligner les mots, on les surligne
    {
            if($type==3)
            {
                    echo preg_replace('#('.preg_quote($rec).')#i', '<strong>$1</strong>', $dnn['infos']);//On surligne l'expression exacte
            }
            else
            {
                    echo preg_replace('#('.str_replace(' ','|',preg_quote($rec)).')#i', '<strong>$1</strong>', $dnn['infos']);//On surligne les mots cles de la recherche
            }
    }
    else
    {
     
    		       echo $dnn['RAISON SOCIALE'];
                    echo $dnn['DIRIGEANT'];
                    echo $dnn['ADRESSE']; 
                    echo $dnn['CP'];
                    echo $dnn['VILLE'];
                    echo $dnn['TEL']; 
                    echo $dnn['TELECOPIE']; 
                    echo $dnn['EMAIL'];
                    echo $dnn['EMAIL2']; 
                    echo $dnn['CODE_NAF']; 
                    echo $dnn['LIBELLE_NAF']; 
                    echo $dnn['RUBRIQUE_PROFESSIONNELLE'];
     
    }
     
    //echo $requete
    ?></td>
            </tr>
    <?php
    }
    ?>
     
    <?php // ?>
    </table>
     
     
     
        <!-- end .content --></div>
      <!-- end .container --></div>
    </body>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Affiche la requête construite et teste la.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2010
    Messages : 86
    Points : 24
    Points
    24
    Par défaut
    Merci de ta réponse, mais tu pourrais etre plus clair ? si possibe
    merci

    Luky

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu verras ainsi quelle requête est executée.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2010
    Messages : 86
    Points : 24
    Points
    24
    Par défaut
    Bonjour, et bien j'ai effectué ce que vous m'aviez conseillé, et le résultat est celui esconté, il m'affiche la requête(qui est juste...) sans pour autant m'afficher les resultats.. je suis un peu perdu !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT RAISON SOCIALE, DIRIGEANT FROM liste WHERE RAISON SOCIALE LIKE "%%" OR 1=1 ORDER BY ID DESC
    j'ai vraiment besoin d'aide.. merci

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    La première a chose a ne pas faire c'est de masquer les erreurs, surtout quand on a un problème.
    Donc retire le @.

    Ensuite il faut debuguer en suivant le déroulement de ton code.
    Simplement avec des echos :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Echo 'avant le while<br/>';
    while($dnn = mysql_fetch_array($requete))
    {
    Echo 'dans le while<br/>';

Discussions similaires

  1. Petit Problème d'Affichage
    Par I_Will_Be_back dans le forum C
    Réponses: 8
    Dernier message: 10/11/2007, 15h26
  2. [AJAX] Affichage en Ajax
    Par RichardP dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 03/05/2007, 16h02
  3. petit problème d'affichage sur un datagridview
    Par boss_gama dans le forum C#
    Réponses: 5
    Dernier message: 01/05/2007, 21h42
  4. petit problème d'affichage
    Par soria_t dans le forum C
    Réponses: 18
    Dernier message: 20/03/2007, 14h40
  5. Problème d'affichage du résultat
    Par cirtey dans le forum C
    Réponses: 6
    Dernier message: 24/02/2007, 19h01

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