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

Langage PHP Discussion :

Mon code est-t'il correct ?


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Points : 184
    Points
    184
    Par défaut Mon code est-t'il correct ?
    Bonjour,

    Je suis en train de faire une page de recherche de membres dans mon espace membre et j'ai besoin de vos avis/suggestions pour me dire si mon code est bien ou si il faut l'améliorer.. (pas si mon code fonctionne, car je sais déjà qu'il fonctionne.)

    voici la page de recherche:
    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
    <?php
    logged_only(); // Vérifie que le membre est bien connecté.
     
    $user_id = $_SESSION['auth']->id; // Récupère l'id du membre connecté.
     
    if(!empty($_POST)){
      if(empty($_POST['genre'])){
        $_SESSION['flash']['danger'] = "Veuillez renseigner le genre recherché.";
      } else {
        $reponse = $pdo->prepare("SELECT id, civilite, prenom, date_naissance, confirmed_at
        FROM users
        WHERE id != $user_id AND civilite = ? AND confirmed_at IS NOT NULL
        ORDER BY confirmed_at DESC LIMIT 0, 20");
        $reponse->execute(array($_POST['genre']));
      }
    } else {
      // Recherche par défaut si le formulaire de recherche n'a pas été envoyé donc pas besoin de requête préparé.
      $reponse = $pdo->query("SELECT id, civilite, prenom, date_naissance, confirmed_at
      FROM users
      WHERE id != $user_id AND confirmed_at IS NOT NULL
      ORDER BY confirmed_at DESC LIMIT 0, 20");
    }
     
    ?>
     
    <h1>Effectuer une recherche</h1>
     
    <form action="" method="POST" class="form-horizontal">
      <div class="form-group">
        <div class="col-md-4 col-md-offset-4 col-sm-4 col-sm-offset-4">
          <label class="radio-inline">
            <input type="radio" name="genre" id="inlineRadio1" value="1"> Homme
          </label>
          <label class="radio-inline">
            <input type="radio" name="genre" id="inlineRadio2" value="2"> Femme
          </label>
        </div>
      </div>
      <div class="form-group">
        <div class="col-md-4 col-md-offset-4 col-sm-4 col-sm-offset-4">
          <button type="submit" class="btn btn-primary">Rechercher</button>
        </div>
      </div>
    </form>
     
    <h2>Résultat</h2>
     
    <?php
    while ($donnees = $reponse->fetch())
    {
    // exemple d'affichage..
    ?>
     
            <h4><?php echo htmlspecialchars($donnees->prenom); ?>, <?php echo age($donnees->date_naissance); ?> ans</h4>
     
    <?php } ?>
    Petite précision : Le formulaire de recherche comportera bien plus qu'un simple radio.. mais la c'est juste pour l'exemple schématique.

    merci

  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
    Tu peux eviter de repeter ta requête.
    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
     
    $condition = "";
    $param = array();
     
    if(!empty($_POST)){
      if(empty($_POST['genre'])){
        $_SESSION['flash']['danger'] = "Veuillez renseigner le genre recherché.";
      } else {
    	$condition = " AND civilite = ? ";
    	$param = array($_POST['genre']);
      }
    }
     
    $sql = "SELECT id, civilite, prenom, date_naissance, confirmed_at
      FROM users
      WHERE id != $user_id AND confirmed_at IS NOT NULL" . $condition . "
      ORDER BY confirmed_at DESC LIMIT 0, 20";
    $reponse = $pdo->prepare($sql);
    $reponse->execute($param);
    Egalement c'est perturbant d'avoir "civilite" dans la table et "genre" dans le formulaire.

  3. #3
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Points : 184
    Points
    184
    Par défaut
    oui tu as raison le code est bien meilleur de cette façon ! mais sinon avec cette façon c'est toujours possible de le découper en MVC ?

    car je passe mon appli en MVC en ce moment (mais toujours en procédural).

    Si j'ai bien compris, je dois passer param et condition dans les paramètres de ma fonction requete dans le model ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Mon Code est-il correct ?
    Par Seuche dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/01/2016, 22h45
  2. Réponses: 5
    Dernier message: 10/11/2007, 10h20
  3. Réponses: 15
    Dernier message: 19/09/2007, 18h46
  4. Pourquoi mon code est plus lent que Arrays.sort
    Par alexis779 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 12/12/2006, 12h44
  5. [Dates] calcul de date est ce que mon code est bon?
    Par carmen256 dans le forum Langage
    Réponses: 2
    Dernier message: 09/06/2006, 11h30

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