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 :
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é:
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 :
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.
Partager