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 :

requete, while et array [MySQL]


Sujet :

PHP & Base de données

  1. #1
    fey
    fey est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 231
    Par défaut requete, while et array
    bonjour,

    en gros j'ai 2 tables dans l'une j'ai les infos complets sur les articles et l'autre ou je stock une l'id de la commande avec ses articles qui y sont rataches (id,code ,quantites).

    dans ma page de traitement je voudrais recuperer tous les articles liee a la commande avec le nom + la quantite

    donc en gros j'ai fais comme ceci

    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
     
    <?php
    include('../verif.php');
    require('../../classeBD.inc');
    header("Pragma: no-cache");
    header("Expires: 0");
    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
    header("Cache-Control: no-cache, must-revalidate");
    header("Content-type: application/xml"); 
    	echo "<select name='commandeAEC2' id='commandeAEC2' size='10'>";
    	if(isset($_POST["id_commande"])){
    		$db = new gestionBD();
    		$db->connect();
    		$listeCommandeArticle = $db->sqlSelect("*",TB_COM_ART,$_POST["id_commande"]);
    		while($row = mysql_fetch_assoc($listeCommandeArticle)){
    			$listeArticleCom=$db->sqlSelect("nom",TB_ART,"code=".$row["code"]);
    			$rowArt=mysql_fetch_assoc($listeArticleCom);
    			echo "<option value='".$row["code"]."'>".$rowArt["nom"]."  ".$row["quantite"]."</option>";
    		}
    	}
    	echo "</select>";
    ?>
    avec ce que j'ai fais, il me met toujours le meme article pour toutes les commandes alors que c'est pas le cas dans la base.

    est ce que vous avez une idee du pourquoi ?
    ah moins qu'il y a une solution plus propre pour arriver a ce que je veux faire ?

    merci beaucoup
    fey

  2. #2
    Membre éclairé Avatar de guigouz
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 84
    Par défaut
    C'est difficile de répondre car on ne sait pas comment fonctionne (bien qu'on puisse deviner) ta classe gestionBD.
    Cependant, est-ce normal que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $listeCommandeArticle = $db->sqlSelect("*",TB_COM_ART,$_POST["id_commande"]);
    alors que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $listeArticleCom=$db->sqlSelect("nom",TB_ART,"code=".$row["code"]);
    On dirait qu'il manque un "id=" avant $_POST["id_commande"]...
    Si ce n'est pas ça, essaye simplement de faire afficher les requêtes que ton objet $db effectue, recopie les dans phpMyAdmin pour savoir ce qu'il te renvoie...

    J'espère avoir fait avancer ton problème
    Bonsoir...

  3. #3
    fey
    fey est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 231
    Par défaut
    lol oui effectivement j'avais oublie id_commande= ...

    mais cela ne fonctionne pas mieux ^^

    desole j'aivais oublie de mettre les infos de la class :p
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    	function sqlSelect($var,$nomtable,$nomwhere){
    		$result=$this->execQuery("SELECT $var FROM $nomtable WHERE $nomwhere");
    		return $result;
    	}
    	function execQuery($query) {
    		$result = mysql_query($query) or die('Erreur SQL !<br>'.$query.'<br>'.mysql_error()); ;
    		if (!$result) { header("Location:erreur_sql.html"); }
    		return $result;
    	}
    pour ce qui concerne les constantes, il s'agit du nom des tables

    par compte je fais comment pour afficher la requete en elle meme, ah moins que j'ai mal compris ce que tu m'as dis :p

    dans tous les cas merci pour ta reponse

    ps: l'id_commande est bien transmise dans la page, j'ai verifie.

  4. #4
    fey
    fey est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 231
    Par défaut
    apparement il recupere seulement le 1er article de la commande.
    probleme de syntaxe ??

  5. #5
    Membre éclairé Avatar de guigouz
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 84
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function sqlSelect($var,$nomtable,$nomwhere)
    {
        $result=$this->execQuery("SELECT $var FROM $nomtable WHERE $nomwhere");
        echo "SELECT $var FROM $nomtable WHERE $nomwhere";
        return $result;
    }
    Avec ce echo, tu peux savoir si tes trois variables sont bonnes et recopier le résultat dans phpMyAdmin afin de savoir s'il te renvoie un tuple ou plusieurs...

    Bonsoir...

  6. #6
    fey
    fey est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 231
    Par défaut
    desole j'ai pas pu repondre avant car j'ai eu trop de taf ^^

    bon j'ai fais, un echo, il me met la syntaxe que j'avais deja fais dans phpmyadmin

    mais visiblement il me met qu'un seul article lorsque que je laisse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    			$listeArticleCom=$db->sqlSelect("nom",TB_ART,"code=".$row["code"]);
    			$rowArt=mysql_fetch_assoc($listeArticleCom);
    et quand je le desactive, il me met bien met deux articles.
    est ce que le fait de faire
    bouge le curseur mysql, ce qui provoquerais, qu'il ne trouve plus le deuxieme articles ?

  7. #7
    fey
    fey est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 231
    Par défaut
    bon finalement j'ai change mon approche vu que j'ai pas eu de solution concluante

    je copie le nom de l'article dans ma table de la commande_article avec le code et la quantite
    je trouve cela pas terrible mais ca marche donc ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. requete while requete converti en 1 requete
    Par cholopat dans le forum Requêtes
    Réponses: 4
    Dernier message: 20/09/2012, 00h05
  2. [MySQL] requete renvoie seulement array
    Par ripout dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 20/11/2010, 23h03
  3. plusieurs requetes --> while imbriqué
    Par xunil2003 dans le forum Langage
    Réponses: 11
    Dernier message: 01/10/2010, 21h37
  4. [MySQL] requete, while, boucle, variable
    Par k2006 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 25/04/2009, 18h25
  5. Requete SELECT + php array
    Par taffMan dans le forum Requêtes
    Réponses: 2
    Dernier message: 28/02/2008, 09h53

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