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

Langage PHP Discussion :

[Tableaux] Affichage multiple 0_o


Sujet :

Langage PHP

  1. #1
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut [Tableaux] Affichage multiple 0_o
    bonjour à tous

    voilà j'ai un script qui permet à chaque client, grâce au numero de commande, de visualiser le suivi de la livraison (+ un récapitulatif des articles achetés)
    mais mon problème est que ça m'affiche 2 fois voire 4 fois le même article commandé

    voici le 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
     
     
    $pseudo = $_SESSION['pseudo'];
    $num_com = $_POST['num_com'];
    //echo $pseudo;
    echo "<br><br>";
    $base=mysql_connect("localhost","root","pouetttt");
     mysql_select_db(BASE, $base);
     
     $requetepseudo = "SELECT num_cli from client where pseudo = '".$pseudo."'";
     
     $req = mysql_query ($requetepseudo) or die (mysql_error());
     if($req)
     {
    $datapseudo = mysql_fetch_array($req);
     
    if($datapseudo)
        {
       $requet = "SELECT a.ref_produit, a.designation_produit, a.quantite, l.etat_livr
       FROM acheter a, commande c, livraison l WHERE c.num_com = '".$_POST['num_com']."' AND a.num_cli = '".$datapseudo[0]."' ";
     
    $res = mysql_query($requet);
    while($data = mysql_fetch_array($res))
    {
    echo "<table border='6' cellspacing='5' cellpadding='1' align=center  bordercolor = 'black' bgcolor = '#969696' color = 'grey'>";
     
       echo"<tr><td>reference du produit </td><td> ";
       echo $data['ref_produit']."</td></tr>";
       echo"<br>";
       echo"<tr><td>designation du produit </td><td> ";
          echo $data['designation_produit']."</td></tr>";
          echo"<br>";
       echo "<tr><td>quantite </td><td> ";
        echo $data['quantite']."</td></tr>";
     echo"<br>";
         echo"<tr><td>etat de la livraison </td><td>";
          echo $data['etat_livr']."</td></tr>";
          echo"<br>";
     
        break;
       }
       }
      }
     }
     
       ?>
    en faite ce script est fait en fonction du pseudo et du numéro de commande..

    merci beaucoup pour votre aide...

  2. #2
    Membre confirmé Avatar de papyphp
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 438
    Points : 587
    Points
    587
    Par défaut
    Salut,

    Tu n'as pas de jointure entre tes tables.
    Il va donc te sortir autant de lignes avec le même produit qu'il y a d'enregistrements dans la table livraison.

    Donnes-nous une description de tes tables qu'on puisse t'aider.

    A+

  3. #3
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    oki merci
    voici les tables :
    [ATTACH]TABLES[/ATTACH]

    Fichiers attachés Fichiers attachés

  4. #4
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    en faite on m'avait aidé et on m'avait donné cette requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $requet = "
    SELECT con.ref_produit, prod.designation_produit, con.quantite, l.etat_livr
    FROM passer p
    INNER JOIN commande co ON (co.num_com = p.num_com)
    INNER JOIN client cl ON (cl.num_cli=p.num_cli)
    INNER JOIN ligne_livr ll ON (ll.num_com=p.num_com)
    INNER JOIN livraison l ON (l.num_livr=ll.num_livr)
    INNER JOIN conserner con ON (con.num_com=p.num_com)
    INNER JOIN produit prod ON (prod.ref_produit=con.ref_produit)
    WHERE (p.num_com = '".$_POST['num_com']."') AND (p.num_cli = '".$datapseudo[0]."')";
    mais le problème est que ça ne m'affiche plus plusieurs fois le meme article, mais là ça ne m'affiche qu'un seul des 2 articles commandés...

    voici le code en entier :
    [ATTACH]CODE ENTIER[/ATTACH]

    merci
    Fichiers attachés Fichiers attachés

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2004
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 26
    Points : 24
    Points
    24
    Par défaut
    En regardant tes tables il semble qu'il y ait des problèmes.

    La table commande n'a pas de champs client (num_cli).
    Comment savoir alors à quel client appartient une commande ?

    Idem pour les livraisons.
    Impossible de savoir à quel client ou à quelle commande correspond une livraison !

    Il faut que tu construises correctement tes tables d'abord.
    Créer correctement le schéma de ta base de données (avec un petit logiciel de dessin vectoriel - genre Dia) avant de coder PHP.

Discussions similaires

  1. [Tableaux] Liste multiple et affichage de données
    Par Triforce dans le forum Langage
    Réponses: 3
    Dernier message: 06/06/2007, 22h46
  2. Réponses: 1
    Dernier message: 21/03/2007, 16h21
  3. [Tableaux] Affichage Array
    Par dafalri dans le forum Langage
    Réponses: 6
    Dernier message: 06/12/2005, 12h55
  4. [Tableaux] Affichage
    Par Anduriel dans le forum Langage
    Réponses: 2
    Dernier message: 05/11/2005, 14h46
  5. [Tableaux] Affichage aléatoire... ou presque !
    Par rafflow dans le forum Langage
    Réponses: 4
    Dernier message: 05/10/2005, 23h43

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