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 :

formulaire de recherche sur une base de données sql


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2022
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2022
    Messages : 6
    Points : 3
    Points
    3
    Par défaut formulaire de recherche sur une base de données sql
    Bonjour,

    J'essaye de faire un petit exo pour m'entrainer dans lequel je suis un peu bloqué

    J'ai un site web d'une agence immobilier qui me permet de sélectionner des annonces suivant la recherche.
    Celle-ci se fait avec une forme où il y a en premier une liste déroulante qui récupère la liste des départements sur ma base de données grâce à une requête préparée en PHP.

    La 2ème est un input number pour choisir le prix des appartements.
    Et en 3e une liste déroulante pour sélectionner le nombre de pièces de 0 à 5.

    Le tout est envoyé avec un bouton submit.

    Voilà le code de ma page Php.

    Code php : 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
     
    <?php
    require_once("models/connection.php");
    $connect = maConnection::getInstance();
     
    $requete = "SELECT * FROM departements WHERE dep_actif=1";
    $state = $connect->prepare($requete);
    $state->execute();
     
     
    // $test=$state->fetchAll();
    // var_dump($test);
     
    /* HEADER entete avec dépendances CSS 
      ================================================== */
    include("header.php");
     
     
    /*NAVBAR
        ================================================== */
    include("menu.php");
     
    /* Carousel
        ================================================== */
     
    include("slider.php");
     
     
    /*  Marketing mainpage 
        ================================================== 
       Wrap the rest of the page in another container to center all the content. */
    //$categorie à definir en fonction de la catégorie de bien choisie dans le formulaire.       
    $categorie = "A définir";
     
     
    echo '<h1>Liste des biens immobiliers</h1>';
     
     
     
    echo '<form  action="#">
    				 <fieldset><legend>Rechercher un Bien immobilier</legend>
    				 
    				  <div class="form-group">
     <input type="hidden" name="lib_cat" value="' . $categorie . '" id="lib_cat" />
     
     <label for="dept">Choisir le département</label>';
     
     
     
     
     
    echo '<select name="dep"  id="dep" class="form-control"  style=" max-width:300px">';
     
    while ($obj = $state->fetch()) {
    	if (isset($_POST["dep"]) && !empty($_POST["dep"]) && $_POST["dep"] == $obj->id_dep) {
     
    		echo '<option value="' . $obj->id_dep . '" selected="selected" >' . $obj->nom_dep . '</option>';
    	} else {
    		echo '<option value="' . $obj->id_dep . '" >' . $obj->nom_dep . '</option>';
    	}
    }
     
     
    echo '</select>';
    echo ' </div>
     <div class="form-group">
     
     <label for="budget">Montant budget maximum</label>
     	<span class="currencyinput">€
    <input type="number"  step="10000" id="bugdet" name="budget" placeholder="Budget Max"  min="50000" max="900000000" />
    </span>
    </div>
    
    <div class="form-group">
     <label for="nbpiece" >Nombre de pièces souhaitées:</label>';
     
    echo '<select name="nbpieces"  id="nbre" class="form-control"  style=" max-width:300px">';
    //<select>
    ?>
    <option selected="selected">nombre de pieces</option>
    <?php
    $pieces = array("5 pieces", "4 pieces", "3 pieces", "2 pieces", "1 pieces", "0 pieces");
     
    // Parcourir le tableau des pieces
    foreach ($pieces as $value) {
    ?>
    	<option value="<?php echo strtolower($value); ?>"><?php echo $value; ?></option>
    <?php
    }
     
     
     
    echo "</select></div>";
     
    echo  '
             <div class="form-group form-button" id="btnsub" >				  
     <button type="submit" class="btn btn-primary" name="envoi">Submit</button>
    	</div>
    	</fieldset>
    	 </form>';
     
     
     
     
     
     
    include("acces_membre.php");
     
     
     
    /* Pied de page avec dépendances Javascript...
        ================================================== */
    include("footer.php");
     
    ?>

    Ce que j'essaye maintenant de faire c'est d'afficher les appartements présents sur ma base de données suivant la sélection faite dans le formulaire le tout dans un tableau en utilisant uniquement PHP, SQL et une requête préparée.

    Merci de votre aide.

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    affichez le contenu de $_GET sur la page où vous voulez afficher le résultat de la recherche. ce tableau contient les valeurs que vous allez utiliser pour construire la requete sql.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2022
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2022
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par mathieu Voir le message
    affichez le contenu de $_GET sur la page où vous voulez afficher le résultat de la recherche. ce tableau contient les valeurs que vous allez utiliser pour construire la requete sql.
    Merci j'essaye pour le moment juste à l'afficher en dessous du formulaire mais je n'ai pas trop compris la réponse

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    pour afficher le contenu d'une variable, vous pouvez utiliser la fonction "var_export" :
    https://www.php.net/manual/fr/function.var-export.php

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2022
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2022
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Merci pour le moment J'ai réussi a afficher le choix par département sélectionné mais je n'arrive pas a le couplé avec la recherche budget

    Voila mon nouveau code

    Code php : 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
     
    <?php
    require_once("models/connection.php");
    $connect = maConnection::getInstance();
     
     $requete = "SELECT * FROM departements WHERE dep_actif";
     $state = $connect->prepare($requete);
     $state->execute();
     
     
     
     
    // $test=$state->fetchAll();
    // var_dump($test);
     
    /* HEADER entete avec dépendances CSS 
      ================================================== */
    include("header.php");
     
     
    /*NAVBAR
        ================================================== */
    include("menu.php");
     
    /* Carousel
        ================================================== */
     
    include("slider.php");
     
     
    /*  Marketing mainpage 
        ================================================== 
       Wrap the rest of the page in another container to center all the content. */
    //$categorie à definir en fonction de la catégorie de bien choisie dans le formulaire.       
    $categorie = "A définir";
     
     
    echo '<h1>Liste des biens immobiliers</h1>';
     
     
     
    echo '<form  action="#">
    				 <fieldset><legend>Rechercher un Bien immobilier</legend>
    				 
    				  <div class="form-group">
     <input type="hidden" name="lib_cat" value="' . $categorie . '" id="lib_cat" />
     
     <label for="dept">Choisir le département</label>';
     
    echo '<select name="dep"   id="dep" class="form-control"  style=" max-width:300px">';
     
    while ($obj = $state->fetch()) {
    	if ($obj->id_dep == $_GET["dep"]) {
     
    		echo '<option value="' . $obj->id_dep . '" selected="selected" >' . $obj->nom_dep . '</option>';
    	} else {
    		echo '<option value="' . $obj->id_dep . '" >' . $obj->nom_dep . '</option>';
    	}
    }
     
     
    echo '</select>';
    echo ' </div>
     <div class="form-group">
     
     <label for="budget">Montant budget maximum</label>
     	<span class="currencyinput">€
    <input type="number"  step="10000" id="bugdet" name="budget" placeholder="Budget Max"  min="50000" max="900000000" />
    </span>
    </div>
    
    <div class="form-group">
     <label for="nbpiece" >Nombre de pièces souhaitées:</label>';
     
    echo '<select name="nbpieces"  id="nbre" class="form-control"  style=" max-width:300px">';
    //<select>
    ?>
    <option selected="selected">nombre de pieces</option>
    <?php
    $pieces = array("5 pieces", "4 pieces", "3 pieces", "2 pieces", "1 pieces", "0 pieces");
     
    // Parcourir le tableau des pieces
    foreach ($pieces as $value) {
    ?>
    	<option value="<?php echo strtolower($value); ?>"><?php echo $value; ?></option>
    <?php
    }
     
     
     
    echo "</select></div>";
     
    echo  '
             <div class="form-group form-button" id="btnsub" >				  
     <button type="submit" class="btn btn-primary" name="envoi">Submit</button>
    	</div>
    	</fieldset>
    	 </form>';
     
     
     
    		// $finrq va définir la fin de la requête préparée au cas où on a utilisé des cases à cocher, cette chaine est vide si rien n'est coché.   
     
     
    		if (isset($_GET["envoi"]) && !empty($_GET["dep"])) {
    			$finrq = " ";
    			$param = [$_GET["dep"]];
     
     
    			// $finrq va définir la fin de la requête préparée au cas où on a utilisé des cases à cocher, cette chaine est vide si rien n'est coché.   
     
     
    	 $requete1 = "SELECT titre,nbr_pieces,surface,prix_vente,description,ges,classe_eco,num_departement,ville,charges_annuelles,id_utilisateur_commercial,id_categorie,id_proprietaire FROM biens_immobiliers WHERE num_departement = ? ".$finrq;
    	 $connect = maConnection::getInstance();
    	 $state = $connect->prepare($requete1);
    	 $state->execute($param);}
     
     
    //  $test1=$state1->fetchAll();
    //  var_dump($test1);
    echo '<table class="table table-striped" >';
    echo '<thead>
    	<thead>
    	
    	</thead><tbody>';
    $nb=0;
    while ($monObj = $state->fetch()) {
    	$nb++;
      echo '<tr>';
      foreach ($monObj as $key => $value) {
     
     
    	echo '<td>' . $value . '</td>';
      }
      echo '</tr>';
    }
     
    echo '<tbody></table>';
     
     
    include("acces_membre.php");
     
     
     
    /* Pied de page avec dépendances Javascript...
        ================================================== */
    include("footer.php");

Discussions similaires

  1. [MySQL] Moteur de recherche sur une base de membres
    Par nakwakwak dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 05/03/2013, 12h46
  2. [phpMyAdmin] Recherche sur une base de données MySQL
    Par CCPMurat dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 29/06/2011, 17h43
  3. Recherche sur une base de données
    Par Zaki_SDwin dans le forum Bases de données
    Réponses: 8
    Dernier message: 30/05/2008, 13h34

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