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 :

Problème sur une requête SQL


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 33
    Par défaut Problème sur une requête SQL
    Bonsoir,

    Je suis actuellement en plein projet de fin d'année. Le but de ce projet est de faire un site web permettant à des client d'acheter des produit.

    J'arrive à la fin du projet mais je rencontre un problème au moment de lister les produits de la commande de mon client.

    J'ai réussi à afficher tous les nom des produits de la commande en cours.

    Par contre j'ai un problème pour afficher la quantité.

    Je récupère la quantité de chaque produits de la commande avec un SELECT, ensuite je fais un test avec un echo pour afficher les valeur passé dans ma variable, ce qui me renvoi donc toutes les quantité de chacun de mes produits.
    Je viens de vérifier, toute mes quantités correspondent bien à mes valeurs dans ma base de données.

    Maintenant mon problème c'est que je n'arrive pas à utiliser ma variable $donnees['quantité'] un peu plus bas dans mon code.

    Voici la partie inintéressante de mon 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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    <?php
    	
    	/*echo "<pre>";
    		print_r($_SESSION);
    		echo "</pre>";*/
    		
    //Récupération de la référence de la commande ou l'id du client est egal  à l'id du client actuellement connecté 
    
    		$id_client = $_SESSION['id'];
    		$req = $bdd->query('SELECT référence FROM commande WHERE id_client = ' . $id_client. " AND etat = 0 ");
    		$refcom = $req->fetchcolumn();
    		echo "<p>Ref. commande :" . $refcom . "</p>";
    		// $req->closeCursor();
    
    //Récupération de l'id des produit correspondant à la commande en cours de l'utilisateur connecté
    	$req = $bdd->prepare('SELECT id_produit, quantite FROM `association-produit-commande` WHERE ref_commande = ? ');
    	$req->execute(array($refcom));
    	$id_produit = $req->fetchAll();
    	
    //Récupération de la quantité pour chaque produit
    	$req = $bdd->prepare('SELECT quantite FROM `association-produit-commande` WHERE ref_commande = ?');
    		$req->execute(array($refcom));
    		while ($donnees = $req->fetch())
    			
    		echo"<p>" .$donnees['quantite'].  "</p>";
    	
    	
    	//echo $donnees['quantite'];
    ?>	
    	<table>
       <tr>
           <th>Produit</th>
           <th>Quantite</th>
       </tr>
       
    <?php
    	
    	foreach($id_produit as $id )
    	{
    		//print_r($id);
    		
    		
    		$req = $bdd->prepare('SELECT nomCommercial FROM `produit` WHERE id =  ? ');
    		$req-> execute(array($id['id_produit']));
    		$nom = $req->fetchColumn();
    		
    		// problème ligne 109 
    		
    		?>
    		
    		<tr>
    		<td><?php echo $nom; ?></td>					
    		<td><?php echo $donnees['quantite']; ?></td> //Mon problème est ici, la variable $donnees['quantité'] n'affiche rien
    		</tr>
    
    	
    		<?php	
    		
    		//echo "<p>" .$id['id_produit']. "</p>";
    		//echo "<p>" .$nom. "</p>";
    		
    	}
    ?>
    
    ?>
    Est ce que quelqu'un saurait me dire le problème ? J'ai l'impression que le problème survient seulement si ma variable se trouve dans le foreach.

    Et voici une image de ma page pour que vous compreniez.

    Nom : siteweb.png
Affichages : 216
Taille : 127,7 Ko

    C'est bête parce que j'ai pratiquement fini et ça me bloque.

    Merci d'avance

  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
    Tu ne trouves pas que tes deux requêtes se ressemblent un peu trop pour que ça vaille le coup d'en avoir deux ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $req = $bdd->prepare('SELECT id_produit, quantite FROM `association-produit-commande` WHERE ref_commande = ? ');
    $req = $bdd->prepare('SELECT quantite FROM `association-produit-commande` WHERE ref_commande = ?');
    Au passage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req = $bdd->prepare('SELECT nomCommercial FROM `produit` WHERE id =  ? ');
    Tu devrais avoir une jointure entre "produits " et "association-produit-commande" dans la requête précédente et surtout pas une sous-requête dans une boucle.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 33
    Par défaut
    Justement j'avais commencé à faire seulement la première requête (que j'ai ensuite oublié de modifié pour enlever "quantite") mais je ne parviens pas à récuperer mes valeur quantite et nom avec une seule requête.

    Donc si je fais ma requête comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
            $req = $bdd->prepare('SELECT id_produit, quantite FROM `association-produit-commande` WHERE ref_commande = ? ');
    	$req->execute(array($refcom));
    	$id_produit = $req->fetch();
    	echo"<p>" .$donnees['quantite'].  "</p>";
    ?>

    Cela me renvoi une erreur :
    Notice: Undefined variable: donnees in C:\wamp\www\Siteweb\panier.php on line 91
    Alors comment faire pour la faire fonctionner tout d'abord ?

  4. #4
    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
    Regarde un peu ton code : d'ou viendrait ce $donnees ?
    Le retour de ton fetch c'est $id_produit.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 33
    Par défaut
    Ah oui effectivement, à force de tout faire dans la précipitation...

    J'imagine qu'il vaut mieux que je refasse tout avec des jointures ?

  6. #6
    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
    Tout refaire c'est un peu grand, il faut seulement rassembler tes 3 requêtes.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Probléme sur une requête SQL
    Par ggoncalves dans le forum Langage SQL
    Réponses: 2
    Dernier message: 05/10/2012, 15h45
  2. Problème sur une requête SQL
    Par Jezlife dans le forum Bases de données
    Réponses: 8
    Dernier message: 18/03/2012, 10h35
  3. Problème sur une requête SQL
    Par juju05 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 20/06/2010, 18h20
  4. Problème sur une requête SQL (PL/SQL)
    Par goofyrocks dans le forum Langage SQL
    Réponses: 5
    Dernier message: 13/01/2009, 17h33
  5. Problème de SUM sur une requête SQL
    Par Lapicure dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 12/06/2007, 11h51

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