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 :

[POO] Classe d'affichage d'une requête [Fait]


Sujet :

Langage PHP

  1. #1
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Points : 958
    Points
    958
    Par défaut [POO] Classe d'affichage d'une requête
    Bonjour

    Pour commencer, je précise que je ne connais pour l'instant RIEN aux classes ni aux templates, mais que je connais un peu la théorie de la POO.
    J'aimerais savoir s'il existe un moyen d'afficher simplement le résultat d'une requête comportant beaucoup de données en définissant une mise en forme.
    J'imagine que ca pourrait prendre la forme d'une classe Tableau comportant comme propriétés le contenu et pas mal d'attributs de mise en forme, ainsi qu'une fonction affichage.

    Si une telle classe existe déjà quelque part (phpmysql fait déja de l'affichage de tableau dynamique, mais je n'ai pas la compétence pour décortiquer le code), je suis preneur.

    Merci

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 091
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 091
    Points : 8 194
    Points
    8 194
    Billets dans le blog
    17
    Par défaut
    PHP pêche là-dessus : Zend te file le core et ensuite à toi de te débrouiller avec ton HTML, rien n'est standardisé et les qques initiatives sont souvent très mal documentées.
    Regarde le package HTML_Table_Matrix de PEAR, il semble faire ce que tu souhaites.
    http://pear.php.net/package/HTML_Table_Matrix/



    phpmysql fait déja de l'affichage de tableau dynamique, mais je n'ai pas la compétence pour décortiquer le code
    Oui et il faut être très patient vu la qualité du code à faire fuire le plus obstiné des geeks
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Points : 958
    Points
    958
    Par défaut
    Merci beaucoup, mais cette classe ne fait malheureusement pas grand chose (et en plus, ca m'évitera de faire installer PEAR)
    J'ai regardé quelques minutes le code de phpmyadmin, mais c'est vraiment incompréhensible en effet.
    Je suis parti pour faire mon propre code, je pense...

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Points : 691
    Points
    691
    Par défaut
    salut
    si tu utilise Smarty regarde les tuto de siddh http://blog.developpez.com/index.php...&pb=1#more1435

    et tu peut faire le meme genre de chose avec xslt

  5. #5
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Points : 958
    Points
    958
    Par défaut
    Merci beaucoup.
    Je n'utilise pas de templates car
    1. je ne comprends pas bien comment ca marche
    2. je ne suis pas certain d'en avoir besoin : en effet j'ai surtout des tableaux de chiffres et des graphiques à afficher.

    Donc j'ai décidé de développer ma propre classe.
    Pourriez-vous SVP me dire si je pars dans la bonne direction, notamment dans la technique de programmation (c'est ma première POO).

    Voici la classe, vous pouvez vous en resservir si vous voulez.
    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
    <?php
     
    class table
    {
    	var $contenu = '';
    	var $ligne_titres = array();
     
    	function afficher()
    	{
     
            	require("conf.php");
     
     
            	/***********************************************************************************/
     
            	$res = mysql_query($this->contenu) or die('requete vide');
     
            	/***********************************************************************************/
            	//les lignes de titre
     
            	if(sizeof($this->ligne_titres) != 0)
            	{
            		echo '<table>';
     
            		for ($i = 0; $i < sizeof($this->ligne_titres); $i++) 
                    	{
                    		if(sizeof($this->ligne_titres[$i]) != 0 and sizeof($this->ligne_titres[$i]) == mysql_num_fields($res))
                            	{
                            		echo '<tr>';
     
                            		for ($j = 0; $j < sizeof($this->ligne_titres[$i]); $j++) 
                            		{
                                    		echo '<td>';
                                    		echo $this->ligne_titres[$i][$j];
                                    		echo '</td>';
                            		}
     
                            		echo '</tr>';
                            	}
                    	}
                    }	
            	else
            	{
            		echo '<table>';
            	}
     
            	/***********************************************************************************/
            	//la table
     
            	echo '<tr>';
     
            	for ($i = 0; $i < mysql_num_fields($res); $i++) 
            	{
                    	echo '<td>';
                    	echo mysql_field_name($res, $i);
                    	echo '</td>';
            	}
     
            	echo '</tr>';
     
            	while ($row = mysql_fetch_row($res)) 
            	{
                    	echo '<tr>';
     
                    	for ($j = 0; $j < count($row); $j++) 
                    	{
                            	echo '<td>';
                            	echo ($row[$j] == NULL) ? '<i>NULL</i>' : $row[$j];
                            	echo '</td>';
                            }
     
                            echo '</tr>';
            	}
     
            }
     
    }
     
    ?>

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/05/2007, 15h06
  2. [POO] Classe interne à une classe, est ce possible ?
    Par Matth_S dans le forum Langage
    Réponses: 13
    Dernier message: 10/02/2006, 10h24
  3. [POO] retourner les attributs d'une classe
    Par ozzmax dans le forum Langage
    Réponses: 10
    Dernier message: 12/01/2006, 00h10
  4. Réponses: 15
    Dernier message: 29/12/2005, 10h32
  5. Réponses: 2
    Dernier message: 17/12/2005, 20h52

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