Afficher un tableau de la base de données

Signaler
Messages postés
36
Date d'inscription
mercredi 7 mars 2012
Statut
Membre
Dernière intervention
10 février 2013
-
Bonjour à tous, je viens de débuter en programmation orienté objet de PHP
et j'ai un soucis dans mon code.
je veux afficher un tableau avec une légende sachant qu'il faut avoir l'entete et la legende du tableau de la base de données.

Ma base de données se compose de 3 tables :
titre ( idtitre,nomtitre,nbrligne,numtitre)
cellule( idcellule, nom_cell )
titre_cellule(titre_idtitre,cellule_idcellule,rang_col)

exemple je veux afficher " A- FORMATION ACADEMIQUE " qui est la légende de mon tableau
ici, numtitre = A
et nomtitre = FORMATION ACADEMIQUE
et nbrligne= c'est le nombre de lignes du tableau

nom_cell c'est le nom de la cellule de l'entete du tableau( exp : diplomes obtenus, annee, etablissement..)

J'ai l'affichage de la legende plusiseurs fois, sachant que je la veux juste une seule fois, je sais pas comment ne pas utiliser la boucle foreach pour ce cas

voila mon code
<?php
class Connexion{
    static function Connect(){
        $Base= new PDO("mysql:host=localhost;dbname=gestioncv","root","");
        $Base->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        return $Base;
    }
}
class Model{
    function base($titre){
        $req = Connexion::Connect()->prepare("SELECT *FROM titre_cellule,titre,cellule 
                    WHERE titre.idtitre     = titre_cellule.titre_idtitre     AND
                    cellule.idcellule       = titre_cellule.cellule_idcellule AND
                    titre.idtitre = :titre ");
        $req->execute(array('titre' => $titre));
        $res = $req->fetchAll();
        return $res; //le retour de la fonction est un tableau $res qui contient les données voulus
    }
    function AjoutTableau($idtitre){

        echo '<table border="1" align="center">';

// legende du tableau

foreach ($this->base($idtitre) as $val){

echo '<caption>'.' '.$val['numtitre'].'- '.$val['nomtitre'].' :'.'</caption>';

}
echo '<tr>';

       
       foreach ($this->base($idtitre) as $valeur){ // il fait appel a la methode base($titre);

        echo '<td align="center">'.$valeur['nom_cell'].'</td>';

        }
        echo '</tr>';

       $nbrligne = $this->base($idtitre);
        for($i=1; $i<= $nbrligne[0]['nbrligne']; $i++ ){
            echo '<tr>';
                foreach ($this->base($idtitre) as $valeur){
                    echo '<td>';

echo'';
                //    echo 'ddd';
                    echo '</td>';
                     }
            echo '</tr>';
        }

    }
}

$c = new Model();
$c->AjoutTableau(1);
?>



Je sais pas comment ne pas utiliser la boucle foreach pour afficher la légende juste une seule fois.
S'il vous plait, quelqu'un pourrais t-il m'aider à resoudre mon probleme ?