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 :

Tableau adaptable à l'écran


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2018
    Messages : 8
    Par défaut Tableau adaptable à l'écran
    Bonjour,

    Etant actuellement en stage en milieu hospitalier au service informatique, j'ai pour mission le développement d'un intranet. Sur cet intranet, on retrouvera les principaux liens importants à accéder en cas de catastrophe. Je souhaiterais adapter les dimensions d'un tableau content les différentes URL de ces plateformes en fonction de l'écran d'affichage dont celui-ci contient des données récupérées à partir d'une base de données MySQL. Mon tableau ressemble à ça pour l'instant :

    Nom : 16768356618524_Sans titre1.png
Affichages : 206
Taille : 223,2 Ko

    Le but serait d'afficher ces différentes icones en plusieurs lignes et plusieurs colonnes (sans compter le nombre de données que comporte la table dans la base) sans qu'elles soient coller les unes aux autres comme ci-dessus.

    J'ai effectué quelques recherches et j'ai trouvé un morceau de code qui répond à mes attentes, le voici, il provient de Codes Sources Comment Ca Marche :
    Code php : 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
    <?php
      $NbrLigne = 2;
      $sth = $connexion->prepare("SELECT * FROM adressesWeb ORDER BY `adressesWeb`.`libelle` ASC;");
      $sth->execute();
      $NbreData = $sth->fetchColumn();
     
      $k=0;
      while ($val = $sth->fetch()) {
         $libelle[$k] = $val['libelle'];
         $url[$k] = $val['url'];
         $icon[$k] = $val['icon'];
         $k++;
      }
     
      if ($NbreData != 0) {
      $i = 0;
      $NbrCol = 0;
      echo '<table class="display table table-striped table-bordered" id="zero_configuration_table" style="width:100%; text-align:center;">';
         for ($i=0; $i<$NbrLigne; $i++) {
            echo '<tr>';
            $j = 0;
            while (($i+($j*$NbrLigne))%$NbrLigne==$i && ($i+($j*$NbrLigne))<$NbreData) {
               echo '<td>';
     
                // AFFICHAGE de l'element
               $k = ($i+($j*$NbrLigne));
     
               if($k < 9){
                 echo '<p><b>' . $libelle[$k] . '</b></p>';
                 echo '<a href="'. $url[$k] .'" target="_blank"> <img src= "' . $icon[$k] . '" height="96" alt="" data-toggle="tooltip" data-placement="top" title="Consulter"> </a>';
                 echo '</td>';
               }
     
               $j++;
               if ($NbrCol<$j) { $NbrCol=$j; }
            }
            echo '</tr>';
         }
      echo '</table>';
      } else {
      echo 'pas de données à afficher';
      }
    ?>

    Voici le résultat donné:
    Nom : Sans titre1.png
Affichages : 193
Taille : 161,7 Ko

    Cependant, il ne m'affiche pas toutes les données de ma table, le premier tuple de la table est ignoré et je pense savoir que le problème vient de la boucle while qui traite les données et les enregistre dans des variables tableaux à une dimension. Ici, la partie de l'extrait de code ci-dessus :
    Nom : Capture1.PNG
Affichages : 187
Taille : 5,3 Ko

    Je viens de regarder la documentation PHP est la fonction fetch ne fait que récupèrer la ligne suivante d'un jeu de résultats. Ce qui voudrais dire que le premier tuple est déjà traité dans l'instruction while ($val = $sth->fetch()). (Corrigez moi si je me trompe).

    Comment résoudre ce problème? Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 655
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 655
    Par défaut
    le souci vient de fetchColumn qui ne fait peut-être pas ce à quoi vous vous attendez :
    https://www.php.net/manual/fr/pdosta...etchcolumn.php

    en ce qui concerne votre besoin d'adapter le nombre de ligne en fonction de la largeur de l'écran, je pense qu'il vaut mieux générer chaque liens dans un élément "div" par exemple et ensuite vous gérez l'affichage en css avec le modèle flex par exemple :
    https://developer.mozilla.org/fr/doc...tion_en_grille
    https://developer.mozilla.org/fr/doc...ble_Box_Layout

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

Discussions similaires

  1. [SSRS 2K8] R2 tableau adapté la taille de l'écran
    Par phoenix75 dans le forum SSRS
    Réponses: 0
    Dernier message: 18/11/2010, 17h29
  2. Taille de site adapté aux écrans
    Par didi71 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 13
    Dernier message: 17/10/2008, 21h50
  3. Taille du html adaptable à l'écran
    Par hellotk dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 07/10/2007, 16h30
  4. Application s'adaptant à tout écran
    Par SOPSOU dans le forum Composants VCL
    Réponses: 2
    Dernier message: 01/10/2007, 19h16
  5. écrire dans un tableau affiché à l'écran
    Par grinder59 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/01/2006, 18h23

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