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 :

Requete Sql sans critères sélectionnés


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 10
    Par défaut Requete Sql sans critères sélectionnés
    Bonjour,

    je suis confronté à un souci sur une page php qui contient une requete sql avec plusieurs critères (recherches immo) cette requête fonctionne sauf s'il n'y a pas de choix dans les critères disponibles.
    Voir ci dessous le code en question
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <select name="property_type[]" size="4" multiple="multiple" class="Style6">
                                <option value="" selected>Not Important </option>
                                <?                           
        $res = dbQuery('SELECT id,type_en  FROM property_type ORDER BY type_en');
        while($row = dbFetchArray($res))
            echo '<option value="',$row['id'],'">',htmlspecialchars($row['type_en']),'</option>';
    ?>
       </select>
    j'ai essayé de mettre * dans <option value="" cela ne marche pas.

    Que faut il que je fasse pour obtenir le résultat escompté , c'est à dire l'affichage de la totalité de la base.

    je précise que je ne suis pas un connaisseur donc si la solution n'est pas simple , n'hésitez pas à détailler.
    Merci par avance pour votre aide,
    cordialement,
    Profwalken

  2. #2
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    Utilises-tu SQL Server ? Si oui, permets-moi d'attirer ton attention sur le point suivant : idéalement tu devrais banir l'utilisation de SQL en dur dans ton code et utiliser à la place des stored procedures;

    Ci-après un lien vers un webcast qui démontre les dangers de la manière dont tu travailles :

    http://www.microsoft.com/france/visi...6-e9852f0f828a

    Pour ta question, sorry je ne connais pas php.

  3. #3
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    Euh... je ne vois pas pourquoi la requête ne fonctionnerait pas !
    L'as-tu testée en dur dans MySQL ?
    Y a t-il un message d'erreur ?

    Ce qui peut ne pas fonctionner, c'est ta liste de choix PHP si ta requête ne retourne aucune ligne résultat.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 10
    Par défaut
    Citation Envoyé par cavo789 Voir le message
    Utilises-tu SQL Server ?
    non, php/mysql

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 10
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Euh... je ne vois pas pourquoi la requête ne fonctionnerait pas !
    L'as-tu testée en dur dans MySQL ?
    Y a t-il un message d'erreur ?

    Ce qui peut ne pas fonctionner, c'est ta liste de choix PHP si ta requête ne retourne aucune ligne résultat.
    Bonjour,

    Non pas testé en dur dans mysql je ferai le test ce soir.

    Oui j'ai un message d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /var/www/vhosts/www.french-property-mp.com/web/inc/db.inc.php on line 53
     
    Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /var/www/vhosts/www.french-property-mp.com/web/inc/db.inc.php on line 48
       0 / 0 Pages  ( 0 Properties )  
    Sorry, no results !
    que faut il faire s'il s'agit du 3eme point que tu évoques? le problème viens peut être de là mais , en fait ce que je souhaite c'est pouvoir afficher tout ce qui est disponible dans la base si des critères précis ne sont pas sélectionnés dans la page de recherches qui génère la requete Sql.

    Merci pour l'aide,
    A+
    Profwalken

  6. #6
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    J'ai du mal à comprendre !
    Le code que tu nous a donné construit une liste de choix à partir du résultat d'une requête. Comme il n'y a pas de clause WHERE dans la requête, si la table contient des lignes, elles seront toutes retournées et tu auras quelque chose dans ta liste de choix !
    Explique plus complètement ton problème parce que là je n'en vois pas dans ton code.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 10
    Par défaut
    vois sur le site ici page de recheche:
    http://www.french-property-mp.com/fr...era-search.php

    en cliquant sur display result sans sélection tu auras le problème évoqué.

  8. #8
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    Et je vois ce message d'erreur PHP :
    Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /var/www/vhosts/www.french-property-mp.com/web/inc/db.inc.php on line 53
    C'est pas un problème SQL mais un problème PHP. Tu ne passes pas le bon argument à la fonction mysql_fetch_row dans ton code.

    Si tu nous donnes le bout de code concerné on pourra peut-être t'aider mais là...
    Au passage je remarque que la liste déroulante est correctement alimentée elle !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 10
    Par défaut
    Voici une portion du db.inc.php cité dans l'erreur

    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
    function dbFreeRes($res)
    {
    	mysql_free_result($res);
    }
     
    function dbFetch($res)
    {	
    	$row = mysql_fetch_row($res);
    	return $row;
    }
     
    function dbFetchArray($result)
    {
    	$row = mysql_fetch_array($result, MYSQL_ASSOC);
    	return $row;
    }

  10. #10
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    Euh... ça sert à quoi d'avoir refait des fonctions qui existent déjà en PHP ?
    A part ralentir l'exécution bien sûr...

    Que vaut la variable $res passée en argument de mysql_fetch_row ? Il faut que ce soit le résultat d'une requête SQL.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 10
    Par défaut
    Je suis une quiche en SQL et Php, ce site je l'ai récupéré tel que.

    je ne sais pas quoi te répondre , par contre , y a til une solution simple au problème?

  12. #12
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par Profwalken Voir le message
    Je suis une quiche en SQL et Php, ce site je l'ai récupéré tel que.
    Ben il est temps de t'y mettre !
    Je n'avais jamais utilisé massivement SQL et je ne connaissais pas du tout PHP avant janvier.
    Vois où j'en suis maintenant.

    je ne sais pas quoi te répondre , par contre , y a til une solution simple au problème?
    Sans information complémentaire de ta part, difficile de te le dire !
    Il faut que tu trouves dans le code à quel endroit il est fait appel à la fonction dbFetch et voir quel argument est passé en paramètre puis remonter le code pour voir d'où est issu ce paramètre.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 10
    Par défaut
    Merci pour tes explications,
    je vais éplucher le code de la page php ce soir pour voir ce que je trouve .

    A+
    pour la suite de l'aventure

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 10
    Par défaut
    les résultats sont affichés par cette page php dont voici le code
    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
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    364
    365
    366
    367
    368
    369
    370
    371
    372
    373
    374
    375
    376
    377
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Mercury Principium Group | your best source for French Riviera properties</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <style type="text/css">
    <!--
    body {
    	margin-left: 0px;
    	margin-top: 0px;
    	margin-right: 0px;
    	margin-bottom: 0px;
    	background-color: #350F02;
    }
    .Style1 {
    	font-family: Verdana, Arial, Helvetica, sans-serif;
    	font-size: 10px;
    	color: #FFFFFF;
    }
    .Style2 {
    	font-family: Verdana, Arial, Helvetica, sans-serif;
    	font-size: 12px;
    	color: #00FFFF;
    	font-weight: bold;
    }
    .Style9 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: #FFFFFF; }
    .Style10 {
    	font-family: Verdana, Arial, Helvetica, sans-serif;
    	font-size: 10px;
    	font-weight: bold;
    	color: #FFFFFF;
    }
    .Style12 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; color: #00FFFF; font-weight: bold; }
     
     
    .Style18 {
    	font-size: 11px;
    	color: #705143;
    	font-family: Verdana, Arial, Helvetica, sans-serif;
    	font-style: italic;
    }
    .Style19 {color: #FFFFFF}
    a:link {
    	color: #FFFFFF;
    	text-decoration: none;
    }
    a:visited {
    	color: #FFFFFF;
    	text-decoration: none;
    }
    a:hover {
    	color: #00FFFF;
    	text-decoration: none;
    }
    a:active {
    	color: #FFFFFF;
    	text-decoration: none;
    }
    .Style31 {	FONT-SIZE: 10px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif
    }
    .Style20 {font-size: 12px; color: #00FFFF; font-family: Verdana, Arial, Helvetica, sans-serif;}
    .Style21 {color: #00FFFF}
    .Style24 {font-size: 10px}
    .Style22 {FONT-SIZE: 9px;
    	FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif;
    }
    .Style6 {FONT-SIZE: 9px;
    	FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif;
    	width: 80px;
    }
    .Style6 {FONT-SIZE: 10px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif
    }
    .Style29 {font-size: 10px; color: #00FFFF; font-family: Verdana, Arial, Helvetica, sans-serif; }
    .Style31 {FONT-SIZE: 10px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif
    }
    -->
    </style>
    </head>
     
    <BODY>
    <SCRIPT src="flashobject.js" type=text/javascript></SCRIPT>
     
    <DIV class="Style13" id=flashcontent>
      <div align="center" class="Style20">Mercury Principium Group | your best source for French Riviera properties
      </div>
    </DIV>
    <SCRIPT type=text/javascript>
    	var fo = new FlashObject("french-property-luxury-prod.swf", "french-property-luxury-prod", "100%", "195", "8", "#350F02", true);
    	fo.addParam("quality", "BEST"); // Définie la qualitée du swf
        //fo.addParam("wmode", "transparent"); // Définie le fond transparent
        fo.addParam("align", "center");
    	fo.addParam("salign", "t");
    	//fo.addParam("align", "center"); // Définie l'alignement du swf
    	fo.setAttribute('xiRedirectUrl', 'http://www.french-riviera-property-rh.com/');
    	fo.write("flashcontent");
    </SCRIPT>
    <div align="center">
      <table width="866" border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td width="186" valign="top"><table width="100%"  border="0" cellspacing="0" cellpadding="0">
            <tr>
              <td><img src="/images/property-col-left.gif" width="186" height="63"></td>
            </tr>
            <tr>
              <td background="images/mercury-col-left/fond.gif"><table width="100%"  border="0" cellspacing="0" cellpadding="0">
                  <tr>
                    <td width="35" height="30">&nbsp;</td>
                    <td width="11" align="center" valign="middle"><a href=""><img src="images/mercury-icones/home-blu.gif" width="11" height="11" border="0"></a></td>
                    <td width="10">&nbsp;</td>
                    <td width="125" align="left" valign="middle"><span class="Style10"><a href="index.html">HOME</a></span></td>
                  </tr>
                  <tr>
                    <td height="30">&nbsp;</td>
                    <td align="center" valign="middle"><a href="french-property-riviera-search.php"><img src="images/mercury-icones/search-blu.gif" width="11" height="11" border="0"></a></td>
                    <td>&nbsp;</td>
                    <td align="left" valign="middle"><span class="Style10"><a href="french-property-riviera-search.php">SEARCH</a></span></td>
                  </tr>
                  <tr>
                    <td height="30">&nbsp;</td>
                    <td align="center" valign="middle"><a href="contact.html"><img src="images/mercury-icones/contact-blu.gif" width="11" height="9" border="0"></a></td>
                    <td>&nbsp;</td>
                    <td align="left" valign="middle"><span class="Style10"><a href="contact.html">CONTACT</a></span></td>
                  </tr>
              </table></td>
            </tr>
            <tr>
              <td><img src="images/mercury-col-left/base.gif" width="186" height="6"></td>
            </tr>
          </table>
          <table width="100%"  border="0" cellspacing="0" cellpadding="0">
              <tr>
                <td height="5"></td>
              </tr>
            </table>
          <table width="100%"  border="0" cellspacing="0" cellpadding="0">
            <tr>
              <td><img src="images/mercury-col-left/new.gif" width="186" height="63"></td>
            </tr>
            <tr>
              <td background="images/mercury-col-left/fond.gif"><table width="100%"  border="0" cellspacing="0" cellpadding="0">
                <tr>
                  <td width="17" height="30"></td>
                  <td width="100" align="left" valign="middle"><a href="french-riviera-property.php?id=51"><img src="property/new/property-ga001.jpg" alt="property - villages of Provence" width="100" height="67" border="0"></a></td>
                  <td width="5"></td>
                  <td width="64" align="left" valign="bottom"><span class="Style10"><br>
                    </span><span class="Style20">Villa</span><span class="Style10"><br>
                    La Gaude <br>
                                  </span><span class="Style1 Style23">Ref GA001<img src="images/pix.gif" width="63" height="1"></span></td>
                </tr>
                <tr>
                  <td height="7" colspan="4"></td>
                </tr>
                <tr>
                  <td height="30">&nbsp;</td>
                  <td colspan="3" align="left" valign="middle" class="Style1">Perfect conditions <a href="Property">proven&ccedil;al Mas</a>, 4093m&sup2; forested and gardened estate on various levels... <span class="Style12"><a href="french-riviera-property.php?id=51"><img src="images/mercury-icones/arrow-blu.gif" alt="property - villages of Provence" width="10" height="11" border="0"></a> <span class="Style19"><a href="french-riviera-property.php?id=51">ENTER</a></span></span> <br>
                      <img src="images/pix.gif" width="1" height="10"></td>
                </tr>
              </table></td>
            </tr>
            <tr>
              <td><img src="images/mercury-col-left/base.gif" width="186" height="6"></td>
            </tr>
          </table>
          <table width="100%"  border="0" cellspacing="0" cellpadding="0">
              <tr>
                <td height="5"></td>
              </tr>
            </table>
          <table width="100%"  border="0" cellspacing="0" cellpadding="0">
            <tr>
              <td height="43" align="center" valign="middle" background="images/mercury-col-left/top.gif"><span class="Style2">Ask us</span> <span class="Style9">a question <br>
                about this Investment</span></td>
            </tr>
            <tr>
              <td valign="top" background="images/mercury-col-left/fond.gif"> 
    		  <form method=POST action=form.php >
    <input type=hidden name=subject value=formmail>
    		    <table width="100%"  border="0" cellspacing="0" cellpadding="0">
                  <tr>
                    <td height="20"></td>
                    <td align="left" valign="middle" class="Style1">Reference : </td>
                    <td align="left" valign="middle"><input name=mark class=Style6 id=mark value="<?=$row['ref']?>"></td>
                  </tr>
                  <tr>
                    <td width="17" height="20"></td>
                    <td width="80" align="left" valign="middle" class="Style1">Your Name:</td>
                    <td align="left" valign="middle"><input type=text name=realname size=30 class="Style6"></td>
                  </tr>
                  <tr>
                    <td height="20"></td>
                    <td align="left" valign="middle" class="Style1">E-m@il*:</td>
                    <td align="left" valign="middle"><input type=text name=email size=30 class="Style6"></td>
                  </tr>
                  <tr>
                    <td height="20"></td>
                    <td align="left" valign="middle" class="Style1">Phone:</td>
                    <td align="left" valign="middle"><input type=text name=phone size=30 class="Style6"></td>
                  </tr>
                  <tr>
                    <td height="20"></td>
                    <td colspan="2" align="left" valign="middle" class="Style1">Additional details:</td>
                    </tr>
                  <tr>
                    <td></td>
                    <td colspan="2" align="left" valign="middle" class="Style1"><textarea class=Style31 COLS=26 ROWS=5 name=comments></textarea></td>
                  </tr>
                  <tr>
                    <td height="10" colspan="3"></td>
                  </tr>
                  <tr>
                    <td height="30">&nbsp;</td>
                    <td colspan="2" align="left" valign="middle" class="Style1"><em>*MANDATORY<img src="images/pix.gif" width="35" height="8"></em>
                      <input type=submit value=Send class="Style22">
                      <img src="images/pix.gif" width="1" height="10"></td>
                  </tr>
              </table>
    		  </form>		  </td>
            </tr>
            <tr>
              <td><img src="images/mercury-col-left/base.gif" width="186" height="6"></td>
            </tr>
          </table></td>
          <td width="10"></td>
          <td width="670" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0">
            <tr>
              <td height="8"></td>
              </tr>
            <tr>
              <td height="35" background="images/property-result/bande1.gif"><table width="100%"  border="0" cellspacing="0" cellpadding="0">
                <tr>
     
    <?
    	require_once('inc/db.inc.php');
    	require_once('inc/moteur_recherche.inc.php');
     
    	$itemData = array();
    	$res = dbQuery('SELECT id FROM properties WHERE section=\'p\' AND '.$SQLCLAUSES.' ORDER BY town');
    	while($row = dbFetch($res)) $itemData[] = $row[0];
    	dbFreeRes($res);
     
    	set_include_path('./admin');
    	require_once('Pager/Pager.php');
    	$params = array(
    	    'mode'       => 'Sliding',
    	    'perPage'    => 6,
    	    'delta'      => 3,
    	    'itemData'   => $itemData
    	);
    	$pager = & Pager::factory($params);
    	$data  = $pager->getPageData();
    	$links = $pager->getLinks();
    ?>			
                  <td width="10">&nbsp;</td>
                  <td width="120" align="center" class="Style20"><span class="Style9"><span class="Style21">
                    <?=$pager->getCurrentPageID()?>
                  </span> / <span class="Style21">
                  <?=$pager->numPages()?>
                  </span> Pages </span></td>
     
                  <td class="Style9"><span class="Style2"><img src="images/pix.gif" width="10" height="8"></span>( <span class="Style21"><?=$pager->numItems()?></span> Properties ) <?=$links['all']?></td>
                </tr>
              </table></td>
              </tr>
          </table>      
            <table width="100%"  border="0" cellspacing="0" cellpadding="0">
              <tr>
                <td height="10"></td>
              </tr>
            </table>
    <?
    	if($data==FALSE) {
    ?>
     
    	<h1 style="color:white">Sorry, no results !</h1>
     
    <?
    	}
    	else
    	{
    		$res = dbQuery('SELECT id,ref,town,surface,rooms,extra,description,photo1 FROM properties WHERE id IN ('.implode(',',$data).') ORDER BY town ASC');
    		while($row = dbFetchArray($res))
    		{
    ?>
     
            <table width="100%"  border="0" cellspacing="0" cellpadding="0">
              <tr>
                <td height="90" background="images/property-result/bande2.gif"><table width="100%"  border="0" cellspacing="0" cellpadding="0">
                  <tr>
                    <td width="10" height="90">&nbsp;</td>
                    <td width="120"><a href="french-riviera-property.php?id=<?=$row['id']?>"><img src="/property/<?=$row['photo1']?>" width="120" height="90" border="0"></a></td>
                    <td><table width="100%" height="90"  border="0" cellpadding="0" cellspacing="0">
                      <tr>
                        <td width="10" rowspan="2">&nbsp;</td>
                        <td width="390" align="left" valign="middle" class="Style1"> <span class="Style12"><?=$row['town']?></span><br><?=nl2br(htmlentities(substr($row['description'],0,150)))?></td>
                        <td width="10">&nbsp;</td>
                        <td align="left"><span class="Style29">Extra </span><span class="Style1"><?=$row['extra']?></span><span class="Style10"><br>
      </span><span class="Style29">Living area</span> <span class="Style1"><?=$row['surface']?> m&sup2;</span><span class="Style10"><br>
      </span><span class="Style29">N&deg; of rooms</span> <span class="Style1"><?=$row['rooms']?></span></td>
                        <td width="5">&nbsp;</td>
                      </tr>
                      <tr>
                        <td class="Style18"><div align="right"><?=$row['ref']?></div></td>
                        <td align="right" class="Style2">&nbsp;</td>
                        <td align="right" class="Style2"><a href="french-riviera-property.php?id=<?=$row['id']?>"><img src="images/mercury-icones/arrow-white.gif" width="10" height="11" border="0"> <span class="Style24">ENTER</span></a><img src="images/pix.gif" width="10" height="8" border="0"></td>
                        <td align="right" class="Style2">&nbsp;</td>
                      </tr>
                    </table></td>
                  </tr>
                </table></td>
              </tr>
            </table>
            <table width="100%"  border="0" cellspacing="0" cellpadding="0">
              <tr>
                <td height="10"></td>
              </tr>
            </table>
    <?
    		}
    	}
    	dbFreeRes($res);
    ?>
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td height="35" background="images/property-result/bande1.gif"><table width="100%"  border="0" cellspacing="0" cellpadding="0">
            <tr>
              <?
    	require_once('inc/db.inc.php');
    	require_once('inc/moteur_recherche.inc.php');
     
    	$itemData = array();
    	$res = dbQuery('SELECT id FROM properties WHERE section=\'p\' AND '.$SQLCLAUSES.' ORDER BY price');
    	while($row = dbFetch($res)) $itemData[] = $row[0];
    	dbFreeRes($res);
     
    	set_include_path('./admin');
    	require_once('Pager/Pager.php');
    	$params = array(
    	    'mode'       => 'Sliding',
    	    'perPage'    => 6,
    	    'delta'      => 3,
    	    'itemData'   => $itemData
    	);
    	$pager = & Pager::factory($params);
    	$data  = $pager->getPageData();
    	$links = $pager->getLinks();
    ?>
              <td width="10">&nbsp;</td>
              <td width="120" align="center" class="Style20"><span class="Style9"><span class="Style21">
                <?=$pager->getCurrentPageID()?>
                </span> / <span class="Style21">
                <?=$pager->numPages()?>
              </span> Pages </span></td>
              <td class="Style9"><span class="Style2"><img src="images/pix.gif" width="10" height="8"></span>( <span class="Style21">
                <?=$pager->numItems()?>
                </span> Properties )
                <?=$links['all']?></td>
            </tr>
        </table></td>
      </tr>
    </table>
          </td>
        </tr>
      </table>
      <br>
      <br>
      <br>
      <table width="100%"  border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td height="115" align="center" valign="middle" background="images/mercury-fond-bas.jpg"><span class="Style2">Mercury Principium Group </span><span class="Style20"></span><br>
            <span class="Style9"><strong>Head office</strong> 7/11 Minerva Road Park Royal - NW 10 HJ London - ENGLAND<br></span>
    	  </td>
        </tr>
      </table>
    </div>
    </body>
    </html>
    Code du fichier moteur_recherche.inc.php inclus dans le précédent
    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
    <?
    	$CLAUSES = array();
     
    	$CLAUSES_OR = array();
    	if(!empty($_REQUEST['transaction_type']))
    		foreach($_REQUEST['transaction_type'] as $k=>$v)
    			if(!empty($v)) $CLAUSES_OR[] = 'transaction_type='.intval($v);
    	if(count($CLAUSES_OR)) $CLAUSES[] = '('.implode(' OR ',$CLAUSES_OR).')';
     
    	$CLAUSES_OR = array();
    	if(!empty($_REQUEST['property_type']))
    		foreach($_REQUEST['property_type'] as $k=>$v)
    			if(!empty($v)) $CLAUSES_OR[] = 'property_type='.intval($v);
    	if(count($CLAUSES_OR)) $CLAUSES[] = '('.implode(' OR ',$CLAUSES_OR).')';
     
    	if(!empty($_REQUEST['min_price']) && is_numeric($_REQUEST['min_price']))
    		$CLAUSES[] = 'price>='.intval($_REQUEST['min_price']);
     
    	if(!empty($_REQUEST['max_price']) && is_numeric($_REQUEST['max_price']))
    		$CLAUSES[] = 'price<='.intval($_REQUEST['max_price']);
     
    	if(!empty($_REQUEST['departement']) && is_numeric($_REQUEST['departement']))
    		$CLAUSES[] = 'LEFT(postcode,2)='.intval($_REQUEST['departement']);
     
    	if(!empty($_REQUEST['surface']) && ereg('([0-9]+)-([0-9]+)',$_REQUEST['surface'],$regs))
    	{
    		$CLAUSES[] = 'surface>='.intval($regs[1]);
    		$CLAUSES[] = 'surface<='.intval($regs[2]);
    	}
     
    	if(!empty($_REQUEST['ville']))
    		$CLAUSES[] = 'town=\''.mysql_escape_string($_REQUEST['ville']).'\'';
     
    	if(!empty($_REQUEST['postcode']))
    		$CLAUSES[] = 'postcode='.intval($_REQUEST['postcode']);
     
    	$CLAUSES_OR = array();
    	if(!empty($_REQUEST['rooms']))
    	{
    		if($_REQUEST['room_type'] == 'room') $room_type = 'rooms'; else $room_type = 'bedrooms';
    		foreach($_REQUEST['rooms'] as $k=>$v)
    		{
    			if(!empty($v))
    			{
    				if($v == '8+') $CLAUSES_OR[] = $room_type.'>=8';
    				else $CLAUSES_OR[] = $room_type.'='.intval($v);
    			}
    		}
    	}
    	if(count($CLAUSES_OR)) $CLAUSES[] = '('.implode(' OR ',$CLAUSES_OR).')';
     
    	$SQLCLAUSES = implode(' AND ',$CLAUSES);
    	unset($CLAUSES_OR);
    	unset($CLAUSES);
    ?>
    Est ce que ça te permet de voir ce qui est en cause?

  15. #15
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    Dans le code, il y a ce genre de passage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    require_once('inc/db.inc.php');
    	require_once('inc/moteur_recherche.inc.php');
    			
    	$itemData = array();
    	$res = dbQuery('SELECT id FROM properties WHERE section=\'p\' AND '.$SQLCLAUSES.' ORDER BY town');
    	while($row = dbFetch($res)) $itemData[] = $row[0];
    	dbFreeRes($res);
    Il faudrait voi si db.inc.php s'occupe de la connexion à MySQL.
    Ce qui peut poser problème dans cette partie aussi c'est
    AND '.$SQLCLAUSES.'
    Si la variable $SQLCLAUSES est mal définie, ce qui semble être le cas quand l'utilisateur ne choisit rien.
    Voilà la piste à creuser.

    Bon courage !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 10
    Par défaut
    Bonjour,

    oui, le fichier db.inc.php contient dans ses premières lignes l'accès à la bdd.

    Merci pour ta remarque sur la définition de $sqlclauses , je sais pas quoi faire, cela va être épique car cela s'apparente pour moi à trouver une aiguille dans une botte de foin.

  17. #17
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par Profwalken Voir le message
    je sais pas quoi faire, cela va être épique car cela s'apparente pour moi à trouver une aiguille dans une botte de foin.
    Ben si je te montrais le code auquel je suis confronté, tu démissionnerais tout de suite !
    En comparaison, ton code semble plutôt propre.
    Le tout c'est de s'y mettre.
    Encore une fois, je ne connaissais pas du tout PHP avant janvier 2008. Depuis j'ai modifié plus de 200 programmes pour les adapter à la nouvelle base de données et j'ai corrigé quelques trucs au passage.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 10
    Par défaut
    J'ai commencé ma recherche sur les variables php et c'est pas gagné...
    Si tu as la gentillesse de jeter un oeil sur ce fichier pour voir si une erreur est présente.
    Ci dessous mon db.inc.php complet:
    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
    <?
    $db_host = 'localhost';
    $db_base = 'ma_bdd';
    $db_login = 'mon_login';
    $db_password = 'mon_pwd';
     
    $db_connection = dbConnect();
     
    function dbConnect()
    {
    	GLOBAL $db_host, $db_login, $db_password, $db_base;
    	$connection = mysql_connect($db_host,$db_login,$db_password) or die("Erreur de connexion à la base de données ...");
    	mysql_select_db($db_base) or die("select_db");
    	return $connection;
    }
     
    function dbQuery($sql)
    {
    	if(defined('DEBUG')) echo '<pre>',wordwrap($sql,100),'</pre>';
    	$result = mysql_query($sql);
    	if(defined('DEBUG') && $result==FALSE) echo '<pre>',mysql_error(),'</pre>';
    	return($result);
    }
     
    function dbInsert($sql)
    {
    	$result = dbQuery($sql);
    	return(mysql_insert_id());
    }
     
    function dbNumrows($result)
    {
    	return (mysql_num_rows($result));
    }
     
    function dbResOk($result)
    {
    	return (mysql_num_rows($result) > 0);
    } 
     
    function dbClose($connection)
    {
    	mysql_close($connection);
    }
     
    function dbFreeRes($res)
    {
    	mysql_free_result($res);
    }
     
    function dbFetch($res)
    {	
    	$row = mysql_fetch_row($res);
    	return $row;
    }
     
    function dbFetchArray($result)
    {
    	$row = mysql_fetch_array($result, MYSQL_ASSOC);
    	return $row;
    }
     
    function dbDataSeek($result,$num)
    {
    	mysql_data_seek($result, $num);
    }
     
    function mysql_mktime($timestamp)
    {
    	$hour = substr($timestamp, 8, 2);
    	$minute = substr($timestamp, 10, 2);
    	$second = substr($timestamp, 12, 2);
    	$month = substr($timestamp, 4, 2);
    	$day = substr($timestamp, 6, 2);
    	$year = substr($timestamp, 0, 4);
    	return mktime($hour, $minute, $second, $month, $day, $year);
    }
     
    $mois = Array(1=>'Janvier','F&eacute;vrier','Mars','Avril','Mai','Juin','Juillet','Ao&ucirc;t','Septembre','Octobre','Novembre','D&eacute;cembre');
    $jours = Array('Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi');
     
    function mysqldate_to_datefr($date,$jour=FALSE)
    {
    	//2004-09-10
    	GLOBAL $mois,$jours;
    	$datefr = '';
    	list($y,$m,$d) = explode('-',$date);
    	$ts = mktime(0,0,0,$m,$d,$y);
    	if($jour) $datefr = $jours[date('w',$ts)].' ';
    	$datefr .= date('j',$ts).' '.$mois[date('n',$ts)].' '.date('Y',$ts);
    	return $datefr;
    }
    function price($a)
    {
    	$b = '';
    	for($i=strlen($a)-1; $i>=0; $i--)
    	{
    		if(!($i%3)) $b = ' '.$b;
    		$b = substr($a,$i,1).$b;
    	}
    	return $b;
    }
    ?>

  19. #19
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    A tout hasard, dans la fonction dbFetchArray, met MYSQL_ASSOC entre '.

    La variable $result passée en argument de la fonction doit être un résultat valide de requête SQL, laquelle a probablement été passée au serveur par la fonction dbQuery, dont le paramètre est la variable $sql. Il faut donc que la requête passée en argument à la fonction dbQuery soit valide.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. Limiter résultat requete sql par critère
    Par filoulebauju dans le forum Requêtes
    Réponses: 4
    Dernier message: 07/09/2009, 14h11
  2. Requete SQL avec critère
    Par devdev dans le forum VBA Access
    Réponses: 3
    Dernier message: 15/06/2009, 11h42
  3. Comment parser une requete sql sans l'executer
    Par FABFAB125 dans le forum SQL
    Réponses: 2
    Dernier message: 30/11/2007, 17h21
  4. [sql]Requete sql sans reponse
    Par Le-Cortex dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 23/05/2006, 16h29
  5. requete SQL sans réponse
    Par kilian dans le forum Langage SQL
    Réponses: 2
    Dernier message: 23/08/2004, 09h36

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