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 d'affichage d'un tableau


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
    Inscrit en
    Avril 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 19
    Par défaut Problème d'affichage d'un tableau
    Bonjour bonjour la communauté, je suis souvent passé sur ce fofo pour résoudre mes problèmes mais là j'avoue que je suis bloqué ^^

    Je vous explique, je dois afficher dans un article de joomla un tableau avec les données de la bdd. La connexion se fait bien, j'arrive a exporter sous la forme d'un tableau mais que quand je ne récupère qu'une seule ligne dans mon tableau à l'aide de ma requête sql. Si j'en récupère plusieurs il n'y a que la première d'afficher.

    J'ai donc eu l'idée de faire une boucle mais la, je n'y arrive pas car c'est un tableau à deux dimensions du coup ( enfin je pense ^^ ) et joomla ne me donne surement pas de message d'erreur donc je m'en remet à vous

    Voici les codes :

    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
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    <?php
     
     
    // connexion a la BD
    // Paramètres persos
    $host = "localhost"; // voir hébergeur
    $user = "root"; // identifiant de votre BD (vide ou "root" en local)
    $pass = ""; // mot de passe de votre BD (vide en local)
    $bdd = "test1"; // nom de la BD
    // --------------------------------
    // connexion
    @mysql_connect($host,$user,$pass) or die("Impossible de se connecter");
    @mysql_select_db("$bdd") or die("Impossible de se connecter");
    // --------------------------------
    ?>
        <html>
        <head>
        <title>Test de récuparation de données</title>
        </head>
        <body>
        <?php
        // lancement de la requete
        $sql = 'SELECT * FROM test_table2 WHERE expediteur = "expe1"';
     
        // on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
        $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
     
        // on recupere le resultat sous forme d'un tableau
        $data = mysql_fetch_array($req);
     
        // on libère l'espace mémoire alloué pour cette interrogation de la base
        mysql_free_result ($req);
        mysql_close ();
     
     
        ?>
    <p>Les informations correspondantes à l identifiant 65 sont :</p><br />
        <table>
        <thead>
        <tr> <th> Expediteur </th>
             <th> Libelle </th>
             <th> Date de Réception<br /> dans nos locaux </th>
             <th> Delais estimé pour <br />avoir les resultats </th>
             <th> Statut </th>
     
        </tr>
        </thead>
        <tbody>
     
    <?php
     
    $i = 1; $count = count($data);
     
    while($i <= $count){
        echo "<tr>"; echo "<td>";
         echo $data[$i][4];
         echo "</td>";
         echo "<td>";
         echo $data[$i][1];
         echo "</td>";
         echo "<td>";
         echo $data[$i][2];
         echo "</td>";
         echo "<td></td>";
     
         echo "<td> ";
     
     
         switch ( $data[$i][3] )
         {
            case '1' : echo "statut1"; break;
            case '2' : echo "statut2"; break;
            case '3' : echo "statut3"; break;
            case '4' : echo "statut4"; break;
            case '5' : echo "statut5"; break;
     
    case '6' : echo "statut6"; break;
     
    default : echo "pas marché";
     
     
        }
     
         echo "</td>";
     
         echo "</tr>";
     
    i++;
     
    } ?>
         </tbody>
        </table>
        </body>
     
        </html>
    Voici le résultat de la requête sur phpmyadmin:




    Voila je sais pas si j'ai était clair, dans le doute dites le moi je rectifiai.
    Merci d'avoir lu

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Par défaut
    Bonjour,

    dans ton exemple $data n'est pas un tableau multi dimensionnel mais un tableau associatif simple avec comme index le nom des colonnes de la BDD, un petit var_dump($data) t'aurais mis sur la piste.

    Pour ton affichage tu veut construire un tableau HTML avec pour chaque ligne dans la BDD une ligne HTML ?

    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
    <?php
        // lancement de la requete
        $sql = 'SELECT * FROM test_table2 WHERE expediteur = "expe1"';
     
        // on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
        $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
     
    if(mysql_num_row($req) > 0){
    ?>
    <p>Les informations correspondantes à l identifiant 65 sont :</p><br />
        <table>
        <thead>
        <tr> <th> Expediteur </th>
             <th> Libelle </th>
             <th> Date de Réception<br /> dans nos locaux </th>
             <th> Delais estimé pour <br />avoir les resultats </th>
             <th> Statut </th>
     
        </tr>
        </thead>
        <tbody>
    <?php
    while($data = mysql_fetch_assoc($req)){
        echo '<tr>';
        echo '<td>' . $data['Expediteur'] . '</td>';
        echo '<td>' . $data['Libelle'] . '</td>';
        echo '<td>' . $data['DateReception'] . '</td>';
        echo '<td>' . $data['Delais'] . '</td>';
        echo '<td>Status ' . $data['status'] . '</td>';
        echo '</tr>';
    }
    ?>
    </tbody>
    </table>
    <?php
    }else{
        echo 'Aucune données dans a BDD';
    }

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 19
    Par défaut
    Oui en gros c'est ca. Ca ressemblerait à ca :

    Expediteur | Libelle | Date réception | délais | Statut
    SociétéX | Truc1 | 14/04/2013 | 7 j | En attente
    SociétéX | Truc2 | 17/04/2013 | 7j | En analyse



    Et le var_dump me donne ceci :

    array(8) {
    [0]=> string(10) "L.2013.MP5"
    ["identifiant"]=> string(10) "L.2013.MP5"
    [1]=> string(8) "4/3/2013"
    ["libelle"]=> string(8) "4/3/2013"
    [2]=> string(1) "1"
    ["date"]=> string(1) "1"
    [3]=> string(5) "expe1"
    ["expediteur"]=> string(5) "expe1"
    }

    Si c'est pas cohérent c'est normal, je me suis trompé dans les appelations de colonnes dans phpmyadmin comme tu peux le voir dans le screen ^^
    Pour ce qui est de "date" c'est en fait un numéro qui correspond au statut d'où le switch que j'avais fait


    j'ai essayé ton code ( en changeant les noms bien sûr ^^ ) mais j'ai une page blanche encore. Désolé de pas pouvoir dire le problème mais j'ai mit le code direct sous joomla ^^

    Merci d'avoir répondu en tout cas.

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Par défaut
    Dans mon post je n'ai pas mis les identifiants de connexion à la BDD donc si tu ne les as pas mis c'est normal que sa ne fonctionne pas remplace juste à partir de la requête SQL donc de la ligne 21 jsuqu'à la 91 dans ton post.

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 19
    Par défaut
    Sisi tkt j'avais mit ^^

    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
    <?php
     
     
    // connexion a la BD
    // Paramètres persos
    $host = "localhost"; // voir hébergeur
    $user = "root"; // identifiant de votre BD (vide ou "root" en local)
    $pass = ""; // mot de passe de votre BD (vide en local)
    $bdd = "test1"; // nom de la BD
    // --------------------------------
    // connexion
    @mysql_connect($host,$user,$pass) or die("Impossible de se connecter");
    @mysql_select_db("$bdd") or die("Impossible de se connecter");
    // --------------------------------
    ?>
     
    <?php
        // lancement de la requete
        $sql = 'SELECT * FROM test_table2 WHERE expediteur = "expe1"';
     
        // on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
        $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
     
    if(mysql_num_row($req) > 0){
    ?>
    <p>Les informations correspondantes à l identifiant 65 sont :</p><br />
        <table>
        <thead>
        <tr> <th> Expediteur </th>
             <th> Libelle </th>
             <th> Date de Réception<br /> dans nos locaux </th>
             <th> Delais estimé pour <br />avoir les resultats </th>
             <th> Statut </th>
     
        </tr>
        </thead>
        <tbody>
    <?php
    while($data = mysql_fetch_assoc($req)){
        echo '<tr>';
        echo '<td>' . $data['expediteur'] . '</td>';
        echo '<td>' . $data['identifiant'] . '</td>';
        echo '<td>' . $data['libelle'] . '</td>';
        echo '<td></td>';
        echo '<td> ' . $data['date'] . '</td>';
        echo '</tr>';
    }
    ?>
    </tbody>
    </table>
    <?php
    }else{
        echo 'Aucune données dans a BDD';
    }
    c'est ce code que j'avais mit ^^

  6. #6
    Membre Expert
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Par défaut
    vire les deux @ ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // connexion
    @mysql_connect($host,$user,$pass) or die("Impossible de se connecter");
    @mysql_select_db("$bdd") or die("Impossible de se connecter");
    c'est possible que tu n'arrive pas à te connecter à la base mais vue que les erreurs sont caché elle n'apparaisse pas.

Discussions similaires

  1. Problème d'affichage d'un tableau DataGridView
    Par Foolmoon dans le forum Windows Forms
    Réponses: 4
    Dernier message: 01/04/2008, 15h00
  2. [SQL] Problème d'affichage de données (tableau html)
    Par Flynt dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 27/02/2008, 11h04
  3. [MySQL] Problème d'affichage dans un tableau au niveau des accents
    Par Stu76 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 20/02/2008, 16h34
  4. Problème d'affichage dans un tableau
    Par claralavraie dans le forum ASP
    Réponses: 13
    Dernier message: 21/12/2005, 15h45
  5. [débutant]problèmes d'affichage dans un tableau
    Par Hastur dans le forum Balisage (X)HTML et validation W3C
    Réponses: 12
    Dernier message: 16/08/2005, 12h00

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