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 correspondant au détail de la commande


Sujet :

PHP & Base de données

  1. #1
    Membre éprouvé
    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
    Par défaut Affichage correspondant au détail de la commande
    Bonjour tout le monde,

    Je réalise un site Web marchand(vente ded moto...)en PHP orienté objet avec une base de données MySql.

    Lorsque le client s'enregistre, il peut consulter toute commande qu'il a effectué auparavant tout en cliquant sur le lien "Mon comptes"=>"Liste des commandes". jusque la tout va bien.
    Ensuite, si le client désir obtenir le détail de la commande (c'est à dire quel produit? à quel prix?....) il a juste à cliquer sur le lien "détail de la commande" mais malheureusement cela ne fonctionne pas c'est à dire j'obtien juste le nom des colonnes.

    Voici le code du controles concernant le 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
    <?php
    	// récupération du code de la commande
    	$code_cmde = $_GET["code"];
    	//$Client=DAO_Client::ChargerUnClient($_COOKIE['moto_28']);
     
     
    	// création d'une instance de la classe commande
    	$LaCom = DAO_Commande::ChargerUneCommande($code_cmde);
     
    	$LaCom = DAO_Commande::TouteLignesCommandes($code_cmde);
     
    	$Commande = new commande();
    	$MesLignesCmde = $Commande->get_LesLignesCommandes()->getAll();
    	require('Vues/V_listeCommande.php');
    ?>
    Voici la vue permettant d'afficher le tableau récapitulatif des articles commandé pour une commande choissit auparavant :
    Code html : 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
    <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>
     
    	<?php
            foreach($MesLignesCmde as $ligne)
            {
                    ?>
    			<tr>
    				<td><div class="contenu"><?php echo $ligne->get_ligne(); ?></div></td>
    				<td><div class="contenu"><?php echo $ligne->get_article()->get_lacategorie()->get_code(); ?></div></td>
    				<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>

    Je pense que le problème vient de "$MesLignesCommandes" mais je voit vraiment pas comment faire pour régler ce problème, pouvez vous m'aider, s'il vous plais??

    Cordialement!!

  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
    Par défaut
    Il faudrait qu'on voit la fonction get_LesLignesCommandes() pour t'aider
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éprouvé
    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
    Par défaut réponse à sabotage
    Il faudrait qu'on voit la fonction get_LesLignesCommandes() pour t'aider
    Cette fonction est une fonction appartenant à la classe commande. Plus précisément c'est une des accesseur :
    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
    <?php
    class commande
    {
    private $Col_lesLignesCommandes; // Collection de LigneCommande
     
    	// Le constructeur
    	public function commande( $leidCde=null, $leClient=null, $laDateCde=null, $lePrixHT=null, $lePrixTVA=null, $lePrixTTC=null)
    	{
    		$this->Int_numligne=1;
    		$this->Int_idCde=$leidCde;
    		$this->Date_DateCde = $laDateCde;
    		$this->Obj_client = $leClient;
    	  	$this->Col_lesLignesCommandes = new collection();
    	  	$this->Dec_prixHT = $lePrixHT;
    	  	$this->Dec_prixTVA = $lePrixTVA;
    	  	$this->Dec_prixTTC = $lePrixTTC;
    	}
     
    // Fonction get_LesLignesCommandes()
    public function get_LesLignesCommandes()
       	{
          return $this->Col_lesLignesCommandes;   
       	}
     
    .......
     
    }
    Merci d'avance

  4. #4
    Membre éprouvé
    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
    Par défaut A SAVOIR
    Lorsque je fais un il me renvoie 'Array'

    Je vois vraiment pas comment faire, si quelqu'un a une idée??!!

    Merci d'avance

  5. #5
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Par défaut
    S'il te renvoie array c'est que c'est un tableau ^^

    Parcours le
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  6. #6
    Membre éprouvé
    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
    Par défaut réponse à Deallyra
    S'il te renvoie array c'est que c'est un tableau ^^

    Parcours le
    Suis d'accord avec toi que c'est un tableau mais comment fais-tu pour le parcourir??

    P.S. : Mon problème c'est que dans ma vue, il m'affiche pas le contenu des lignes de commandes!!

    Cordialement.

  7. #7
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Par défaut
    mysql_fetch_array()

    mysql_fetch_array — Retourne une ligne de résultat MySQL sous la forme d'un tableau associatif, d'un tableau indexé, ou les deux
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  8. #8
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Citation Envoyé par loic20h28 Voir le message
    Suis d'accord avec toi que c'est un tableau mais comment fais-tu pour le parcourir??

    P.S. : Mon problème c'est que dans ma vue, il m'affiche pas le contenu des lignes de commandes!!

    Cordialement.
    Il existe une fonction dédiée au parcours de tableau : foreach

  9. #9
    Membre éprouvé
    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
    Par défaut réponse à jml94 et à Deallyra
    tout d'abord merci pour vos réponse.

    Il existe une fonction dédiée au parcours de tableau : foreach
    merci pour cette indication mais si on regarde mon premier post, je l'utilise au niveau de ma vue mais justement c'est la que ça fonctionne pas.

    Je rexplique le problème :
    Lorsque le client s'enregistre, il peut consulter toute commande qu'il a effectué auparavant tout en cliquant sur le lien "Mon comptes"=>"Liste des commandes". jusque la tout va bien.
    Ensuite, si le client désir obtenir le détail de la commande (c'est à dire quel produit? à quel prix?....) il a juste à cliquer sur le lien "détail de la commande" mais malheureusement cela ne fonctionne pas c'est à dire j'obtien juste le nom des colonnes mais pas le contenu donc ce qui est à l'intérieur du foreach du code suivant : (code correspondant à ma vue qui me permet d'afficher le détail de la commande choissit auparavent)
    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
    <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>
     
    	<?php
    	foreach($MesLignesCmde as $ligne)
    	{
    		?>
    			<tr>
    				<td><div class="contenu"><?php echo $ligne->get_ligne(); ?></div></td>
    				<td><div class="contenu"><?php echo $ligne->get_article()->get_lacategorie()->get_code(); ?></div></td>
    				<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 le controle qui me permet d'atteindre la vue ci-dessus :
    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
    <?php
    	// récupération du code de la commande
    	$code_cmde = $_GET["code"];
    	//$Client=DAO_Client::ChargerUnClient($_COOKIE['moto_28']);
     
     
    	// création d'une instance de la classe commande
    	$LaCom = DAO_Commande::ChargerUneCommande($code_cmde);
     
    	$LaCom = DAO_Commande::TouteLignesCommandes($code_cmde);
     
    	$Commande = new commande();
    	$MesLignesCmde = $Commande->get_LesLignesCommandes()->getAll();
    	require('Vues/V_listeCommande.php');
    ?>
    J'espère que quelqu'un pourra m'aider!!

    Merci d'avance

  10. #10
    Membre éprouvé
    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
    Par défaut
    Bonjour tout le monde,

    voila il me reste plus que ce problème à résoudre mais j'y arrive vraiment pas, j'espère que vous pourriez m'aider!!

    Ce que je compte obtenir : Une page m'affichant le détail de la commande qui a été choissit auparavant.

    Voici le nouveau code de mon controle (oui j'utilise la méthode du MVC!!) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?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_LesLignesCommandes()->getAll();
    	require('Vues/V_listeCommande.php');
    ?>
    Voici le code de la méthode 'DetailCommande($code)' :
    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
    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;
    			//echo $requete;
    			$resultat = mysql_query($requete);
     
    			$macol=new collection;
     
    			while($row = mysql_fetch_array($resultat))
    			{
    				$macol->add($resultat);
    			}
    			return $macol->getAll();
     
    		}
    Voici le code de ma vue (page devant m'afficher les détails de la commande sous forme de tableau) :
    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
    <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>
     
    	<?php
    	foreach($MesLignesCmde as $ligne)
    	{
    		?>
    			<tr>
    				<td><div class="contenu"><?php echo $ligne->get_ligne(); ?></div></td>
    				<td><div class="contenu"><?php echo $ligne->get_article()->get_lacategorie()->get_code(); ?></div></td>
    				<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>
    A SAVOIR :
    * La méthode 'DetailCommande($code)' appartient à la classe DAO_Commande(classe permettant l'accées aux données de ma base MySQL) et l'accesseur 'get_LesLignesCommandes()' appartient à la classe 'Commande'. Il n'y à pas d'héritage entre les deux classes.
    * Lorsque je met un 'print_r($MesLignesCmde);' juste avant le foreach de ma vue, il m'affiche 'Array()'.

    Pour le moment, il m'affiche juste les noms des colonnes...(en faite tout ce qui est avant le foreach). J'ai pas l'impression qu'il rentre dans mon 'foreach'.
    Quand vous regardez mon code, quel défault voyez-vous?? Avez-vous une idée pour régler mon problème??

    Merci d'avance!!

Discussions similaires

  1. détail d'une commande
    Par ajor dans le forum Requêtes
    Réponses: 1
    Dernier message: 14/09/2009, 13h14
  2. Réponses: 2
    Dernier message: 01/07/2009, 11h52
  3. affichage conditionnel d'un bouton de commande
    Par s.rais dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 01/05/2009, 12h11
  4. Réponses: 2
    Dernier message: 06/06/2008, 12h31
  5. [ETAT] Limiter l'affichage des lignes détail
    Par bmad1 dans le forum IHM
    Réponses: 4
    Dernier message: 16/05/2007, 11h12

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