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 :

Cherche à afficher un tableau PHP/msql (avec for each) sur ma page HTML


Sujet :

Langage PHP

  1. #1
    Membre habitué

    Homme Profil pro
    sans
    Inscrit en
    Octobre 2019
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ariège (Midi Pyrénées)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Octobre 2019
    Messages : 205
    Points : 139
    Points
    139
    Par défaut Cherche à afficher un tableau PHP/msql (avec for each) sur ma page HTML
    Salut

    J'ai ce code de composition (hélas) pour afficher des membres d'un site en plusieurs lignes et colonnes, mais au lieu de cela ça les affichent tous en une seule colonne, je comprend pas où je me trompe car j'ai mis TR pour début de ligne et TD pour début de colonne.

    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
    print("<table border=\"1\">");
    // Boucle pour lire chaque donnée du tableau PHP qui est contenu dans $resultat et insertion dans le tableau HTML.
    $max_horiz=4; // Max de colonnes (horizontal).
    $max_vert=2; // Max de lignes (vertical).
    $compte_horiz=0; // Compteur horizontal.
    $compte_vert=0; // Compteur vertical.
    $chaine="";
    foreach ($resultat as $key => $variable)
    {
     
    	if($compte_horiz>$max_horiz)
    	{
    		$compte_horiz=0;
    		++$compte_vert;
    	}else
    	{
    		++$compte_horiz;
    		$chaine=$chaine."<tr style='text-align:left;'>";	
    	}
     
    	if($compte_vert>$max_vert)
    	{
    		$compte_vert=0;
    	}else
    	{
    		$chaine=$chaine."<td><div id='photo'>"."<img src=\"#\" id=".$resultat[$key]['id']." Alt=\"Photo ici \" /></div>".
    		"Age : ".$resultat[$key]['age']."<br/>".
    		"Pseudo : ".$resultat[$key]['pseudo']."<br/>".
    		"Emai : ".$resultat[$key]['mail']."<br/></td></tr>";		
    	}
    	$chaine=$chaine."</tr>";
    	print($chaine);
    }
     
    // Fin du tableau HTML.
    print("</table>");
    Je galère et j'ai pas trouvé de solutions sur le web :/

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    ce code est vraiment moisi, tu peux tout jeter.
    Comme je n'ai pas toutes les explications, je te propose quelque chose d'approchant :
    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
    <?php
     
    // échappement des caractères dangereux
    $hsc = function($p): string { return htmlspecialchars($p, ENT_QUOTES, 'utf-8'); };
     
    foreach ($resultat as $k => $v) {
        $rows[] = <<<html
    <tr>
      <td><img id="{$hsc($v['id'])}" src="#" alt="Photo ici" /></td>
      <td>{$hsc($v['age'])}</td>
      <td>{$hsc($v['pseudo'])}</td>
      <td>{$hsc($v['mail'])}</td>  
    </tr>
    html;
    }
    ?>
    <table>
        <thead>
        <tr>
            <th>Photo</th>
            <th>Âge</th>
            <th>Pseudo</th>
            <th>Mail</th>
        </tr>
        </thead>
        <tbody>
        <?= implode('', $rows) ?>
        </tbody>
    </table>

  3. #3
    Membre habitué

    Homme Profil pro
    sans
    Inscrit en
    Octobre 2019
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ariège (Midi Pyrénées)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Octobre 2019
    Messages : 205
    Points : 139
    Points
    139
    Par défaut
    Lol Merci je suis content de savoir que c'est moisi


    Salut et merci beaucoup pour ton code !

    Je vais vite le regarder pour apprendre ça.

    EDIT :

    Jai lancé le code et ça me dit une erreur dans cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $hsc = function($p): string { return htmlspecialchars($p, ENT_QUOTES, 'utf-8'); };
    Erreur systeme : Parse error: syntax error, unexpected ':', expecting '{' in C:\wamp\www\beserious\travail.php on line 137
    J'ai relancé le code sans les instructions fautives et ça me dit :
    Fatal error: Function name must be a string in C:\wamp\www\beserious\travail.php on line 144
    La ligne 144 c'est là, la ligne de "age" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <tr>
      <td><img id="" src="#" alt="Photo ici" /></td>
      <td>{$hsc($v['age'])}</td>
      <td>{$hsc($v['pseudo'])}</td>
      <td>{$hsc($v['mail'])}</td>  
    </tr>

  4. #4
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    il faut penser à préciser la version de PHP visée : les codes sont maintenant pour PHP 7+
    Tu dois juste remplacer le passage par ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // échappement des caractères dangereux
    $hsc = function($p) { return htmlspecialchars($p, ENT_QUOTES, 'utf-8'); };

  5. #5
    Membre habitué

    Homme Profil pro
    sans
    Inscrit en
    Octobre 2019
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ariège (Midi Pyrénées)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Octobre 2019
    Messages : 205
    Points : 139
    Points
    139
    Par défaut
    Merci beaucoup Rawsrc !

    PHP 5.5

    C'est vrai tu as raison, je sais pas pourquoi j'ai pas mis la version, en général je le fais, c'est sûr que c'est mieux

    Je suis super content je vais avancer avec ça, merci !

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 23/07/2016, 21h35
  2. affiche erreur tableau php class
    Par kate59 dans le forum Langage
    Réponses: 18
    Dernier message: 20/07/2010, 17h51
  3. Afficher un tableau php de N dimensions dans un arbre
    Par cuhbe dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/07/2009, 13h56
  4. Difficulté avec "for each" et tableau dynamique
    Par lemordore dans le forum VB 6 et antérieur
    Réponses: 21
    Dernier message: 29/03/2007, 17h48
  5. [FPDF] Afficher un tableau php avec fdpf
    Par sami69 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 10/04/2006, 13h47

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