8768 sujets

Développement web côté serveur, CMS

Bonjour,

je viens à vous car j'ai un petit soucis, je suis actuellement en train de développer un site pour une prise de rendez vous chez un coiffeur spécialise dans des soins médicaux et je souhaite faire la liste des rendez vous "malade" avec les prestations qui corresponds à ces rendez vous.

Voici ma requête sql pour les rendez vous (get_rdv_malade () ) :
select * from rendez_vous INNER join client on client.idClient = rendez_vous.idClient WHERE client.malade=1 AND rendez_vous.rdvValide =0


et ma requête pour les prestations qui corresponds au rendez vous (get_la_prestation($idRdv)) :
select * from depend INNER join prestation on prestation.idPrestation = depend.idPrestation WHERE idRdv = '$idRdv';


Jusqu'ici tout va bien, je vais maintenant dans mon controleur :
$data['rdvMalade'] = $this->Rdv_m->get_rdv_malade () ;
        if($data['rdvMalade'] ) {
            foreach($data['rdvMalade'] as $item) {
                $idRdv = $item->idRdv;
                echo "avant:".$idRdv."<br/>";
                $data['prestation'] = $this->Prestations_m->get_la_prestation($idRdv) ;
                echo "apres:".$idRdv."<br/>";
                
                foreach($data['prestation'] as $itemP){
                    echo"ListePresta"."<br/>";
                    echo "idPresta".$itemP->idPrestation."<br/>";
					echo "libellePresta".$itemP->libellePrestation."<br/>";
					echo "descriptionPresta".$itemP->descriptionPrestation."<br/>";
                }
            }

        }
        //les vues
        
        $this->load->view('common/header_v', $data);
        $this->load->view('espaceMembre/admin/commonAdmin/barreMenuAdmin_v', $data);
        $this->load->view('espaceMembre/admin/listeRdvAdmin_v', $data);
        $this->load->view('common/footer_v', $data);


il m'affiche bien les prestations en fonction de l'id du RDV : (voir l'image 1)

mais dans la vue il m'affiche la prestation du dernier RDV pour les 2 rendez vous (voir l'image 2 )

voici le code de ma vue :
		<div class="row">
			<!--RDV malade-->
            <?php foreach($rdvMalade as $item) {?>
		
            <div class="col-md-6">
                <div class="produits" style="border: 2px solid black;">
                    
                    <h3 >n°<?php echo $item->idRdv;?> - <?php echo $item->nomClient;?> <?php echo $item->prenomClient;?> </h3>
                    <div>
                        Description Prestation:
                        <?php
                            if(!$prestation){
								echo "pas de prestation";
							}else{
								foreach ($prestation as $itemP) {
								
									echo $itemP->idPrestation."<br/>";
									echo $itemP->libellePrestation."<br/>";
									echo $itemP->descriptionPrestation."<br/>";
								}
							}
                                    
                        ?>
                        <br/>
                        <br/>
                        Date RDV  : <?php echo $item->dateRdv; ?>
                        <br/>
                        Heure Debut RDV: <?php echo $item->heureDebutRdv;?>
                    </div>
					<div class="atc">
                        <a href="" class="btn btn-success">
                            Valider le RDV
                        </a>
						
                    </div>
					<?php
						
					?>
				</div>
                <!-- Fin produits-->
				<br/>
            </div>
            <!-- Fin col-md-6-->
            <!-- FIN RDV malade -->
            <?php } ?>
		</div>
		<!-- Fin row -->


est ce que quelqu'un aurai une idée de pourquoi ça marche dans le contrôleur mais pas dans la vue ? (j'ai essaye de changer de place le foreach de $prestation mais c'est toujours la même chose)
image 1
upload/1567253838-65800-image1.png

image 2
upload/1567253906-65800-image2.png

Bien Cordialement, bonne journée
ps: desole mais je crois que je me suis trompé de catégories au niveau du post ><..
Modifié par NenoLucia (31 Aug 2019 - 15:34)
Salut NenoLucia,
J'ai pas regardé dans le détail (c'est pas facile à comprendre^^) mais je pense que ton problème vient de $data['prestation'] qui ne dépend pas de $data['rdvMalade'], donc à chaque fois que tu passes dans ton foreach tu "écrases" les données enregistrées précédemment.
Tu devrais plutôt avoir $data['rdvMalade']['prestation'] afin de lier les deux...
Si ce n'est pas ça, pourrais tu publier un peu plus de code (le contenu de tes fonctions) et la structure de tes tables?
Essaie aussi stp d'incrémenter un peu mieux ton code pour que ce soit plus lisible...
A bientôt Smiley smile
Coucou ,

Merci de ta réponse,

J'ai tester ça

$result = array_merge($data['rdvNormal'], $data['prestationN']);
$print_r($result);


et ça me donne sa

Array ( 
   [0] => stdClass Object ( 
      [idRdv] => 1 
      [dateRdv] => 2019-09-04 
      [heureDebutRdv] => 09:00:00 
      [heureFinRdv] => 10:00:00 
      [rdvValide] => 0 
      [idClient] => 2 
      [nomClient] => TESTCLIENT 
      [prenomClient] => testClient
      [mailClient] => test@gmail.com 
      [mdpClient] => 202cb962ac59075b964b07152d234b70 
      [adrClient] => test 
      [cpClient] => test 
      [paysClient] => test 
      [telClient] => test 
      [admin] => 0 
      [malade] => 0 )      
   [1] => stdClass Object ( 
      [idPrestation] => 2 [idRdv] => 1 [libellePrestation] => COUPE Femme 
      [descriptionPrestation] => cheveux court [idCategPresta] => 1 ) 
   [2] => stdClass Object ( 
      [idPrestation] => 7 [idRdv] => 1 [libellePrestation] => Brushing [descriptionPrestation] => 
      [idCategPresta] => 1 )
)

mais du coup comment je peux faire pour s'affiche dans la vue, avec les foreach?

j'ai essaye de remettre l'indentation a la main parce que avec mon copier coller c'est tout décalé

bonne journée
Modifié par NenoLucia (31 Aug 2019 - 17:25)
Difficile à dire sans voir ton code, mais j'imagine que tu devrais avoir ça:

foreach ($item->prestation as $itemP) {
	echo $itemP->idPrestation."<br/>";
	echo $itemP->libellePrestation."<br/>";
	echo $itemP->descriptionPrestation."<br/>";
}

Après je ne sais pas comment tu crées ta variable $prestation qu'il y a dans l'affichage. Ce qui est sûr par contre, c'est qu'elle ne semble pas dépendre de ton item ($rdvMalade).

Après, et c'est un avis perso qui n'engage que moi, mais je pense que pour ce genre de choses il est plus simple de travailler avec des tableaux plutôt que des objets...
Bonsoir,

je vois je vais essaye de creuser par là,

en ce qui concerne les tableaux sans objet je sais pas si c'est faisable avec code igniter quand tu récupères le résultat d'une requête c'est dans un tableau donc a voir


merci en tout cas pour ton aide ça m'a quand même bien débloqué ^^
De rien!
Code Igniter je pourrai pas te dire, je n'ai jamais utilisé...
Bon courage en tous cas et bonne soirée!