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 :

Affichage des données de plusieurs tables


Sujet :

PHP & Base de données

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut Affichage des données de plusieurs tables
    Bonjour tout le monde,

    voila je réalise un site web en PHP objet avec une base de données MySql.
    Je souhaiterais afficher le numéro de la ligne de la commande, le code de la catégorie, le modèle et la marque de l'article, la quantité commandée et le prix.
    Je posséde plusieurs table : Categorie(code, libellé) ; article(id, marque, modele,...., prix) ; commande(id, date, montantHT, montantTVA, montantTTC) ; ligneCommande(numLingne, quantitéCommandée, prix)

    Mon code posséde des classes métiers(commande, catégorie, article, ligneCommande, ...) et des classes d'accées aux données(DAOCommande, ....)
    J'utilise la méthode MVC donc je posséde des controles et des vues.

    Comment feriez vous pour afficher ce que je souhaite (voir plus haut de ce même sujet)??
    Voila ce que j'ai commencé à faire :
    * dans ma classe DAO_Commande, j'ai créé une méthode qui m'afficherai les données souhaité :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public static function DetailCommande($code)
    		{
    			$requete="SELECT LC.NUMLIGNE, LC.CODECAT, A_MARQUE, A_MODELE, Lc_QTE, Lc_PrixHT FROM ligne_commande as LC, commande as C, article as A WHERE C.ID_CDE=LC.ID_CDE AND (LC.CODECAT, LC.ID_ART)=(A.CODECAT, A.A_ID) AND C.ID_CDE=".$code;
    			$resultat = mysql_query($requete);
     
    			$macol=new collection;
     
    			while($row = mysql_fetch_array($resultat))
    			{
    				$macol->add($resultat);
    			}
    			return $macol->getAll();
     
    		}
    * puis un controle qui me permet de faire appel à la méthode ci-dessus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    	// récupération du code de la commande
    	$code_cmde = $_GET["code"];
    	$Info_Com = DAO_Commande::DetailCommande($code_cmde);
     
    	$Commande = new commande($Info_Com['ID_CDE'], $Info_Com['IDclient'], $Info_Com['DateCmde'], $Info_Com['Co_MontantHT'], $Info_Com['Co_MontantTVA'], $Info_Com['Co_MontantTTC']);
    	$MesLignesCmde = $Commande->get_LesLignesCommandes1();
    	require('Vues/V_listeCommande.php');
    ?>
    * Pour finir, la vue qui permet d'afficher ce que je souhaite :
    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
    <div align="center" class="contenu">
    	D&eacute;tail de la commande num&eacute;ro : <?php echo $code_cmde; ?>
    </div>
     
    <table>
    	<tr>
    		<th><h4>Num&eacute;ro de la ligne</h4></th>
    		<th><h4>Code de la cat&eacute;gorie</h4></th>
    		<th><h4>Marque de l'article</h4></th>
    		<th><h4>Mod&eacute;le de l'article</h4></th>
    		<th><h4>Quantit&eacute; command&eacute;e</h4></th>
    		<th><h4>Prix de l'article</h4></th>
    	</tr>
     
    			<tr>
    				<td><div class="contenu"><?php echo $MesLignesCmde['Int_numligne']; ?></div></td>
    				<td><div class="contenu"><?php echo $MesLignesCmde['CODECAT']; ?></div></td>
    				<td><div class="contenu"><?php echo $MesLignesCmde['A_MARQUE']; ?></div></td>
    				<td><div class="contenu"><?php echo $MesLignesCmde['A_MODELE']; ?></div></td>
    				<td><div class="contenu"><?php echo $MesLignesCmde['Lc_QTE']; ?></div></td>
    				<td><div class="contenu"><?php echo $MesLignesCmde['Lc_PrixHT']; ?></div></td>
    			</tr>
    </table>
    <div align="center">
    	<a href="index.php?action=liste_commande">Retour</a>
    </div>
    mais cela fonctionne qu'a moitié c'est à dire que ce qui s'affiche c'est le résultat de cela :
    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
    <div align="center" class="contenu">
    	D&eacute;tail de la commande num&eacute;ro : <?php echo $code_cmde; ?>
    </div>
     
    <table>
    	<tr>
    		<th><h4>Num&eacute;ro de la ligne</h4></th>
    		<th><h4>Code de la cat&eacute;gorie</h4></th>
    		<th><h4>Marque de l'article</h4></th>
    		<th><h4>Mod&eacute;le de l'article</h4></th>
    		<th><h4>Quantit&eacute; command&eacute;e</h4></th>
    		<th><h4>Prix de l'article</h4></th>
    	</tr>
     
    			<tr>
    				<td><div class="contenu"><?php echo $MesLignesCmde['Int_numligne']; ?></div></td>
    => Auriez-vous fais comme cela??
    -> Si oui, comment puis-je résoudre mes problèmes?? Comment je peux faire pour récupérer ce qu'affiche ma requête??
    -> Si non, comment feriez-vous??

    En attente de vos précieux conseil et aide!!

    Merci d'avance!!

  2. #2
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut De retour
    Bonjour tout le monde,

    Voilà, je suis toujours bloqué au même endroit : afficher le détail de la commande choisi auparavant.

    Donc je programme toujours en PHP orienté objet.

    Voici le code du controle nommé C_DetailCommande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    	// récupération du code de la commande
    	$code_cmde = $_GET['code'];
     
    	// Appel de la méthode Detail_Commande() de la classe DAO_Commande
    	$LaCom = DAO_Commande::Detail_Commande($code_cmde);
     
    	// Ajout du résultat du detail de la commande dans la collection
    	$MesLignesCmde = $LaCom;
     
    	// Appel de la vue V_DetailCommande.php
    	require("Vues/V_DetailCommande.php");
    ?>
    Voici la méthode "DetailCommande()" :
    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
    public static function Detail_Commande($idCommande)
    		{
    			$req="SELECT * FROM ligne_commande WHERE Id_Cde = $idCommande";
    			//echo $req;
    			$res = mysql_query($req);
     
    			$macol=new collection;
     
    		    while($row=mysql_fetch_array($res))
    		    {
    		    	$MesLignesCommandes=new ligne_commande($row["ID_CDE"], $row["NUMLIGNE"], $row["CODECAT"], $row["ID_ART"], $row["Lc_QTE"], $row["Lc_PrixHT"]);
    			//	$Article = new article($row["CODECAT"], $row["A_ID"], $row["A_PRIXHT"], $row["A_MARQUE"], $row["A_MODELE"], $row["A_CYLINDRE"], $row["A_DESIGNATION"], $row["A_Photos"], $row["A_Type"]);
    				$macol->add($MesLignesCommandes);
    		    }
    		    return $macol->getAll();
    		}
    Voici le code de la vue (affiche les détail de la commande) :
    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
    <div align="center" class="contenu">
    <br/><br/><br/><br/>
    	D&eacute;tail de la commande num&eacute;ro : <?php echo $code_cmde; ?>
    </div>
    <table>
    	<tr>
    		<th><h4>Marque de l'article</h4></th>
    		<th><h4>Mod&eacute;le de l'article</h4></th>
    		<th><h4>Quantit&eacute; command&eacute;e</h4></th>
    		<th><h4>Prix de l'article</h4></th>
    	</tr>
     
    	<?php
    	foreach($MesLignesCmde as $ligne)
    	{
    		?>
    			<tr>
    				<td><div class="contenu"><?php echo $ligne->get_article()->get_marque(); ?></div></td>
    				<td><div class="contenu"><?php echo $ligne->get_article()->get_modele(); ?></div></td>
    				<td><div class="contenu"><?php echo $ligne->get_Qte(); ?></div></td>
    				<td><div class="contenu"><?php echo $ligne->get_article()->get_prixHT(); ?></div></td>
    			</tr>
    		<?php
    	}
    	?>
    </table>
    <div align="center">
    	<a href="index.php?action=liste_commande">Retour</a>
    </div>
    Voici ci-joint ce que cela m'affiche comme message d'erreur.

    Quelqu'un a t-il une idée??

    Cordialement.
    Images attachées Images attachées  

Discussions similaires

  1. Réponses: 6
    Dernier message: 08/04/2014, 11h43
  2. supprimer des données dans plusieurs tables
    Par mnssylvain dans le forum Access
    Réponses: 4
    Dernier message: 28/01/2007, 19h06
  3. Réponses: 4
    Dernier message: 06/01/2007, 21h51
  4. Réponses: 2
    Dernier message: 15/12/2006, 10h31
  5. Réponses: 10
    Dernier message: 15/09/2005, 12h31

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