Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/01/2011, 17h17   #1
Invité régulier
 
lucas bonomi
Inscription : décembre 2010
Messages : 86
Détails du profil
Informations personnelles :
Nom : lucas bonomi
Âge : 21
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2010
Messages : 86
Points : 7
Points : 7
Envoyer un message via MSN à lukyVJ Envoyer un message via Skype™ à lukyVJ
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 :
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>
lukyVJ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2011, 20h00   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Affiche la requête construite et teste la.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 11h09   #3
Invité régulier
 
lucas bonomi
Inscription : décembre 2010
Messages : 86
Détails du profil
Informations personnelles :
Nom : lucas bonomi
Âge : 21
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2010
Messages : 86
Points : 7
Points : 7
Envoyer un message via MSN à lukyVJ Envoyer un message via Skype™ à lukyVJ
Merci de ta réponse, mais tu pourrais etre plus clair ? si possibe
merci

Luky
lukyVJ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 20h59   #4
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Tu verras ainsi quelle requête est executée.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2011, 10h41   #5
Invité régulier
 
lucas bonomi
Inscription : décembre 2010
Messages : 86
Détails du profil
Informations personnelles :
Nom : lucas bonomi
Âge : 21
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2010
Messages : 86
Points : 7
Points : 7
Envoyer un message via MSN à lukyVJ Envoyer un message via Skype™ à lukyVJ
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 :
SELECT RAISON SOCIALE, DIRIGEANT FROM liste WHERE RAISON SOCIALE LIKE "%%" OR 1=1 ORDER BY ID DESC
j'ai vraiment besoin d'aide.. merci
lukyVJ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2011, 11h24   #6
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
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 :
1
2
3
4
5
 
Echo 'avant le while<br/>';
while($dnn = mysql_fetch_array($requete))
{
Echo 'dans le while<br/>';
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h16.


 
 
 
 
Partenaires

Hébergement Web