Bonjour à tous,

J'essaye de migrer (progressivement) vers de la POO.

Parfois je reste coincé sur des requêtes simples car je me pose la question de l'optimisation de ma classe.

Je voudrais savoir comment feriez-vous lorsque je dois utiliser 2 requêtes quasi similaires afin d'optimiser le code.

Exemple de requêtes séquentielles:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
//liste déroulante maison
$stmtHousesList = $connexion->prepare("SELECT * FROM houses ");
$stmtHousesList->execute();
 
//affichage maison
$stmtHouses = $connexion->prepare("SELECT * FROM houses WHERE id = :id_house");
		$stmtHouses->BindParam(":id_house",$id_house);
		$stmtHouses->execute();
		$dspHousesTitle = $stmtHouses->fetch(PDO::FETCH_ASSOC);
La première requête est utilisée pour afficher une liste déroulante de toutes les maisons disponibles via une boucle foreach.
exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
<select class="form-control input-lg" name="house" onchange="selectHouse(this.value);"   >
                   			<?php 
		                    foreach ($stmtHousesList as $houseList) {
 
                            $selected_house = $id_house === $houseList['id'] ? ' selected="selected"  ' : ''; 
                            $id = $houseList['id'];
                            $houseName = $houseList['name'].' '.$houseList['capacity']; ?>
                            <option  class="form-control" value="<?php echo $id;?>" <?php echo $selected_house;?> ><?php echo $houseName;?></option>
 
		                   <?php } ?>
		               </select>


La seconde est utilisée afin d'afficher un ou plusieurs éléments selon la clause WHERE...
exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
<input type="hidden" class="form-control input-lg" name="house_id" value="<?php echo $dspHousesTitle['id'] ?>"/>
Hormis le WHERE... elles sont "presque" similaires.


Comment feriez-vous pour créer une ou plusieurs méthode(s) pour être utilisée dans une classe sur base des ces 2 requêtes ?

Je ne vois pas comment optimiser cela.

Merci pour vos conseils