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 :

Récupérer les données sous forme de tableau PHP MySQL


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 109
    Points : 35
    Points
    35
    Par défaut Récupérer les données sous forme de tableau PHP MySQL
    Bonjour tout le monde !!
    j'ai un problème lors de la récupération de mes données sous forme de tableau.
    Le but de ma recherche c'est de trouver tous les départements dont mon matériel a été un jour (faire un suivi) le matériel est désigné par un numéro d'invent.
    normalement ma requête doit récupérer plusieurs lignes car il a été dans plusieurs départements.
    Voila mes codes :

    1ere page: (aucun problème pour cette page)
    Code X : 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
    <form id="form1" name="form1" method="post" action="rech_emp2.php">
    
      <p align="center">
      <div align="center"><strong>N° d'inventaire : </strong>
       <select name="nom_fourep">
                <?
    			$reponse = mysql_query("SELECT distinct num_inventaireh FROM historique");
    			while($donnees=mysql_fetch_array($reponse))
    			{
    			echo"<option>".$donnees['num_inventaireh']."</option>";
    			}
    			?>
              </select>
      </div>
      <label>
      <div align="center"><br />
        <input type="reset" name="Submit2" value="Annuler" />
        <input type="submit" name="Submit" value="Rechercher" />
      </div>
      </label>
        <label>
        <div align="center"></div>
        </label>
        <div align="center">
    </form>

    2eme page où il y a le problème rech_emp2.php:
    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
    <?
    $num_inventaireh=$_POST['num_inventaireh'];
    mysql_connect("localhost", "root", ""); // Connexion à MySQL
    mysql_select_db("xoops"); // Sélection de la base 
    $reponse = mysql_query("SELECT categorie_math,marque_math,nom_foureph,departementh,lieuh,date_affectationh FROM historique where num_inventaireh='$num_inventaireh'");
    $donnees=mysql_fetch_array($reponse);
    echo"
    <p align=\"left\" class=\"Style1\">N° inventaire: ".$num_inventaireh."</p><BR>
    <table  width=\"742\" border=\"1\">
      <tr>
        <td width=\"80\" bgcolor=\"#E2E2F1\" border=\"1\"><div align=\"center\"><strong>Categorie</strong></div></td>
        <td width=\"80\" bgcolor=\"#E2E2F1\"><div align=\"center\"><strong>Département</strong></div></td>
        <td width=\"90\" bgcolor=\"#E2E2F1\"><div align=\"center\"><strong>Lieu</strong></div></td>
        <td width=\"80\" bgcolor=\"#E2E2F1\"><div align=\"center\"><strong>Date d'affectation </strong></div></td>
      </tr>
      <tr>
        <td ><div align=\"center\"><strong>".$donnees['num_inventaireh']."</div></td>
        <td><div align=\"center\"><strong>".$donnees['categorie_math']."</td></div>
        <td><div align=\"center\"><strong>".$donnees['departementh']."</td></div>
        <td><div align=\"center\"><strong>".$donnees['lieuh']."</td></div>
        <td><div align=\"center\"><strong>".$donnees['date_affectationh']."</td></div>
      </tr>";
    echo"</table><br>";
    ?>

    ce que j'ai dans cette 2eme page c'est si elle retourne une seule ligne
    moi je veux qu'elle retourne plusieurs lignes selon département et lieu et la date d'affectation, car un seul matériel peut avoir plusieurs emplacements (département, lieu) dans des dates différentes (date_affectation)

    désolée d'être long et merci d'avance

  2. #2
    Membre éprouvé
    Homme Profil pro
    Touche à tout informatique autodidacte
    Inscrit en
    Janvier 2007
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Touche à tout informatique autodidacte

    Informations forums :
    Inscription : Janvier 2007
    Messages : 808
    Points : 912
    Points
    912
    Par défaut
    Bonjour,
    Le code de ta deuxième page, ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $donnees=mysql_fetch_array($reponse);
    demande à lire la première occurence du résultat de ta requête. Il ne te manquerais pas un while?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 109
    Points : 35
    Points
    35
    Par défaut
    si il me manque un while mais je sais pas comment l'integrer dans mon code.
    while($num_inventaireh)???
    ma recherche se fait selon le nu d'inventaire
    est ce que c'est possible de me donnee le code exacte??
    et merci

  4. #4
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 109
    Points : 35
    Points
    35
    Par défaut
    j'ai essayé ceci :
    $reponse = mysql_query("SELECT categorie_math,marque_math,nom_foureph,departementh,lieuh,date_affectationh FROM historique where num_inventaireh='$num_inventaireh'");
    while ($donnees = mysql_fetch_array($reponse) )
    {
    echo"
    <p align=\"left\" class=\"Style1\">N° inventaire: ".$num_inventaireh."</p><BR>
    <table width=\"742\" border=\"1\">
    <tr>
    <td width=\"80\" bgcolor=\"#E2E2F1\" border=\"1\"><div align=\"center\"><strong>Categorie</strong></div></td>
    <td width=\"80\" bgcolor=\"#E2E2F1\"><div align=\"center\"><strong>Marque</strong></div></td>
    .
    .
    .
    mais il me donne page blanche , avant de la ajouter il m'a donné la table sans donnees

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut buf
    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
    echo"
    <p align=\"left\" class=\"Style1\">N° inventaire: ".$num_inventaireh."</p><BR>
    <table  width=\"742\" border=\"1\">
      <tr>
        <td width=\"80\" bgcolor=\"#E2E2F1\" border=\"1\"><div align=\"center\"><strong>Categorie</strong></div></td>
        <td width=\"80\" bgcolor=\"#E2E2F1\"><div align=\"center\"><strong>Département</strong></div></td>
        <td width=\"90\" bgcolor=\"#E2E2F1\"><div align=\"center\"><strong>Lieu</strong></div></td>
        <td width=\"80\" bgcolor=\"#E2E2F1\"><div align=\"center\"><strong>Date d'affectation </strong></div></td>
      </tr>
      <tr>
        <td ><div align=\"center\"><strong>".$donnees['num_inventaireh']."</div></td>
        <td><div align=\"center\"><strong>".$donnees['categorie_math']."</td></div>
        <td><div align=\"center\"><strong>".$donnees['departementh']."</td></div>
        <td><div align=\"center\"><strong>".$donnees['lieuh']."</td></div>
        <td><div align=\"center\"><strong>".$donnees['date_affectationh']."</td></div>
      </tr>";
    echo"</table><br>";
    même sans savoir s'il y à un résultat possible, ce que je peu affirmer c que :

    peu être que cela est une question d'ergonomie, mais poser milles \ alors qu'un fonctionnement " ' ' '" le permet, c pas très simple

    donc
    echo"<p align=\"left\"
    à remplacer par echo "<p align='left'

    de plus, pour afficher $num_inventaireh il faut l'avoir sélectionné dans la requête

    voila, bon courage

  6. #6
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 109
    Points : 35
    Points
    35
    Par défaut
    merci pour ta reponse mais encore ça ffonctionne pas

  7. #7
    Membre éprouvé
    Homme Profil pro
    Touche à tout informatique autodidacte
    Inscrit en
    Janvier 2007
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Touche à tout informatique autodidacte

    Informations forums :
    Inscription : Janvier 2007
    Messages : 808
    Points : 912
    Points
    912
    Par défaut
    Bonjour,
    Dans ta première page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <select name="nom_fourep">
    Je pense que c'est nom_fourep qui est transmis. Alors que dans ta seconde page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $num_inventaireh=$_POST['num_inventaireh'];
    sera vide puisque non transmis.

    Essaye de remplacer ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $num_inventaireh=$_POST['nom_fourep'];

  8. #8
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 109
    Points : 35
    Points
    35
    Par défaut
    Merci bien pour ta remarque, mais encore ça fonctionne pas je suis deçue

  9. #9
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 109
    Points : 35
    Points
    35
    Par défaut
    Re bonjour,
    j'ai trouvé cette solution pour créer un tableau dynamique mais il y a toujours problème voila le code de mes deux pages :
    Code X : 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
    <form id="form1" name="form1" method="post" action="rech_emp2.php">
    
      <p align="center">
      <div align="center"><strong>N° d'inventaire : </strong>
       <select name="num_inventaireh">
                <?
    			$reponse = mysql_query("SELECT distinct num_inventaireh FROM historique");
    			while($donnees=mysql_fetch_array($reponse))
    			{
    			echo"<option>".$donnees['num_inventaireh']."</option>";
    			}
    			?>
              </select>
      </div>
        <div align="center"><br />
        <input type="reset" name="Submit2" value="Annuler" />
        <input type="submit" name="Submit" value="Rechercher" />
      </div>
      </form>

    et la deuxième page:
    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
    <?
    $num_inventaireh=$_POST['num_inventaireh'];
    mysql_connect("localhost", "root", ""); // Connexion à MySQL
    mysql_select_db("xoops"); // Sélection de la base 
     // sélection de toutes les fiches
     
    $query="SELECT * FROM historique where num_inventaireh='$num_inventaireh'";
    $resultat=mysql_query($query); 
    echo'<table>'; 
    $row=mysql_fetch_row($resultat); 
    while($row) 
    { 
    echo"<tr><td>$row['id_mat']</td><td>$row['num_inventaireh']</td><td>$row['departementh']</td><td>$row['lieuh']</td><td>*$row['nom_foureph']</td></tr>\n"; 
    } 
    echo'</table>'; 
    mysql_close(); // Déconnexion de MySQL 
    ?>
    l'erreur que je reçois :
    Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in c:\program files\easyphp1-8\www\xoops\modules\recherche\rech_emp2.php on line 26
    ligne 26 est ce qui est entre le while:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo"<tr><td>$row['id_mat']</td><td>$row['num_inventaireh']</td><td>$row['departementh']</td><td>$row['lieuh']</td><td>*$row['nom_foureph']</td></tr>\n";

  10. #10
    Membre éprouvé
    Homme Profil pro
    Touche à tout informatique autodidacte
    Inscrit en
    Janvier 2007
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Touche à tout informatique autodidacte

    Informations forums :
    Inscription : Janvier 2007
    Messages : 808
    Points : 912
    Points
    912
    Par défaut
    Bonjour,
    n'oublie pas la balise code (la petite #) quand tu ajoutes du code dans ton message.

    Sinon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo"<tr><td>$row['id_mat']</td><td>$row['num_inventaireh']</td><td>$row['departementh']</td><td>$row['lieuh']</td><td>*$row['nom_foureph']</td></tr>\n";
    la petite étoile c'est quoi? Je l'ai marqué en rouge.

  11. #11
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 109
    Points : 35
    Points
    35
    Par défaut
    Bonjour, desolee il y a pas d'etoile * dans mon code c'est juste par faute qund j'ai fai du copier coller je croi k j'ai touché l'etoile
    l'erreur je l'ai tjrs

  12. #12
    Membre éprouvé
    Homme Profil pro
    Touche à tout informatique autodidacte
    Inscrit en
    Janvier 2007
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Touche à tout informatique autodidacte

    Informations forums :
    Inscription : Janvier 2007
    Messages : 808
    Points : 912
    Points
    912
    Par défaut
    Bonjour,

    mysql_fetch_row te donnerais des résultats plutôt avec des nombres qu'avec le nom du champ . Il te faudrait faire une boucle de lecture sur $compteur pour lire $row[$compteur][0] et $row[$compteur][1].

    Je te conseille d'utiliser cette forme :
    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
    $query="SELECT `id_mat`, `num_inventaireh`, `departementh`, `lieuhh`, `nom_foureph` FROM `historique` WHERE `num_inventaireh`='$num_inventaireh'";
    $resultat=mysql_query($query); 
    echo'<table>'; 
    while (list($idmat,$num_inventaireh,$departementh,$lieuh,$nom_foureph)=mysql_fetch_row($result)):
       echo "<tr><td>";
       echo $idmat;
       echo "</td><td>";
       echo $num_inventaireh;
       echo "</td><td>";
       echo $departementh;
       echo "</td><td>";
       echo $lieuh;
       echo "</td><td>";
       echo $nom_foureph;
       echo "</td></tr>\n";
    endwhile;
    Tu remarques que dans la requête j'ai mis id_mat en supposant que c'est le nom de ton champ dans la base de données et que la variable de lecture idmat. L'essentiel c'est le nom dans la base de données puis pour la variable tu mets le nom de ton choix.

  13. #13
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 109
    Points : 35
    Points
    35
    Par défaut
    OK merci bien pour ta reponse je vais la essayer ,mon c'etai de creer un tableau dynamique j'ai arriver afficher les resultats juste sou forme de texte :
    voila 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
    <?
    $num_inventaireh=$_POST['num_inventaireh'];
     
    mysql_connect("localhost", "root", "")or die("Impossible de se connecter à la base de données"); // Connexion à MySQL
    mysql_select_db("xoops")or die("Impossible de se connecter à la base de données"); // Connexion à MySQL
     
    $reponse = mysql_query("SELECT departementh,lieuh,date_affectationh,num_inventaireh
     FROM historique where num_inventaireh='$num_inventaireh'"); // Requête SQL
    // On fait une boucle pour lister tout ce que contient la table :
     
    while ($donnees = mysql_fetch_array($reponse) )
    {
    ?>
    <p>
    <strong>N° d'inventaire</strong> :<?php echo $donnees['num_inventaireh']; ?> <br ></br>
    <strong>Departement</strong> : <?php echo $donnees['departementh']; ?><br ></br>
    <strong>Lieu</strong> :<?php echo $donnees['lieuh']; ?><br ></br>
    <strong>Date d'affectation</strong> :<?php echo $donnees['date_affectationh']; ?><br ></br>
     
    </p>
     
     
    <?php
    }
     
    mysql_close(); // Déconnexion de MySQL
     
    include_once '../../footer.php';
    ?>
    ça fonctionne bien mais je veux affiecher un tableau dynamique

  14. #14
    Membre éprouvé
    Homme Profil pro
    Touche à tout informatique autodidacte
    Inscrit en
    Janvier 2007
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Touche à tout informatique autodidacte

    Informations forums :
    Inscription : Janvier 2007
    Messages : 808
    Points : 912
    Points
    912
    Par défaut
    Bonjour,
    Je n'ai pas très bien compris ta demande "tableau dynamique".

    Fait attention à mettre les balises code quand tu écris sur le forum en écrivant du code. La petite dièse en haut du formulaire. Tu te fais corriger à chaque fois.

  15. #15
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 109
    Points : 35
    Points
    35
    Par défaut
    pour le tableau dynamique,
    dans mon application le materiel peut avoir plusieurs emplacement slon une date.par exemple aujourdhui dans un departement biologie demain dans un dep giologie...etc.
    moi je doit recuperer ces emplacement sous forme d'un tableau qui contient le dep et la salle.
    selon le materiel le nombre d'emplacement chaange .
    alors mon tableau sera pas le meme pour tous les materiaux.
    j'espere que j'etais claire au que vs avez la reponse à mon probleme.

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/02/2014, 13h32
  2. Servlet-JSP passage de données sous forme de tableau
    Par Kpone dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 23/04/2009, 13h31
  3. Afficher des données sous forme de tableau
    Par poti67 dans le forum JSF
    Réponses: 10
    Dernier message: 24/09/2008, 15h35
  4. Réponses: 3
    Dernier message: 19/01/2008, 10h20
  5. [MySQL] Récupérer les données sous forme de liste déroulante
    Par loopback dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 26/12/2007, 16h10

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