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

Bibliothèques et frameworks PHP Discussion :

[ImageMagick] Positionner des intervalles dans un tableau


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 89
    Par défaut [ImageMagick] Positionner des intervalles dans un tableau
    Salut la communauté !

    Voila je suis en train de créer un emploi du temps pour une école d'ingés. J'ai deja fait mes pages de remplissage, evec enregistrement dans ma BDD et des pages de consultation... Or je voudrais l'afficher sous un autre format (cf PJ). Ainsi je voudrais créer des images, ce ne serait que des rectangles, à insérer dans une page php, qui contiendrait les differents cours pour certains horaires.

    Mon procédé serait le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    boucle pour les jours
      boucle pour les groupes
        boucle pour les heures
          condition if si cours a cette heure
            oui => on affiche limage en fonction de la durée du cours
            non => on passe heure suivante
          fin du if
        fin boucle heures
      fin boucle groupes
    fin boucle jours
    Le soucis est que je ne veut pas insérer mes rectangles en haut a gauche mais dans les case, ou a cheval sur deux.
    Comment pensez vous que je puisse afficher donc une image comme je le desire?

    Merci d'avance

    Vince

  2. #2
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Le problème c'est la création ou l'insertion des images ? Si c'est la disposition c'est plus un problème HTML que PHP...

    Il y a déjà eu un sujet similaire récemment mais je me rappelle plus du titre.

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 89
    Par défaut
    Je sais comment créer une image :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     <?php 
       header ("Content-type: image/png"); 
       // créer l'image 
        $im = imagecreate(75, 15); 
           // définie les différentes couleurs (la première est la couleur de fond) 
               $bleue = ImageColorAllocate($im, 156, 227, 254); 
            $noir = ImageColorAllocate($im, 0, 0, 0);
           // on entre un texte a afficher dans l'image
            imagestring($im, 2, 2, 2, "Salut toi", $noir);
           // et le cadres de l'image 
       ImagefilledRectangle($im, 115, 40, 190, 55, $noir); 
       // affiche l'image 
       ImagePng($im); 
    ?>
    Pour l'insérer on peut utiliser <img src=....> mais dans ce cas la, il y a deux prob :
    - ca affiche dans une case et la redimensionne en fonction du texte plutot que de la mettre sur deux cases a cheval,
    - il faut que je mette mon code d'image pour chaque case et il y en a beaucoup! lol surtout que le code dessus est la version courte car dedans je dois tester si l'heure est bone et si oui, recuperer des chaps de ma BDD pour les afficher.

    En fait je voudrais incorporer dans le code de ma page ou il y a le tableau un code permettant de faire ce que j'ai posté précédemment : les boucles et tout ca.

    Merci
    </code>

  4. #4
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    et bienvenue !

    Je te déconseille d'utiliser les images, au moins dans un premier temps. En effet un simple tableau html suffira a tes besoins. exemple à coller dans un fichier test.html et à lancer dans le navigateur :
    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
    <style type="text/css">
    th {
        text-align:left;
    }
    .occupe {
        text-align:center;
    }
    .repas {
        background-color:#ddd;
    }
    .anglais {
        background-color:#Fdd;
    }
    .maths {
        background-color:#ddF;
    }
    .physique {
        background-color:#dFd;
    }
    </style>
    <table border="1" cellpadding="0" cellspacing="0">
        <thead>
            <tr>
                <th>&nbsp;</th>
                <th width="9%">8h</th>
                <th width="9%">9h</td>
                <th width="9%">10h</th>
                <th width="9%">11h</td>
                <th width="9%">12h</th>
                <th width="9%">13h</td>
                <th width="9%">14h</th>
                <th width="9%">15h</td>
                <th width="9%">16h</th>
                <th width="9%">17h</td>
            </tr>
        </thead>
        <tbody>
            <tr>
                <th>Lundi</th>
                <td>&nbsp;</td>
                <td colspan="2" class="occupe maths">Maths</td>
                <td>&nbsp;</td>
                <td colspan="2" class="occupe repas">Repas</td>
                <td colspan="2" class="occupe anglais">Anglais</td>
                <td colspan="2" class="occupe physique">Physique</td>
            </tr>
            <tr>
                <th>Mardi</th>
                <td colspan="2" class="occupe maths">Maths</td>
                <td class="occupe physique">Physique</td>
                <td class="occupe anglais">Anglais</td>
                <td colspan="2" class="occupe repas">Repas</td>
                <td>&nbsp;</td>
                <td>&nbsp;</td>
                <td>&nbsp;</td>
                <td>&nbsp;</td>
            </tr>
        </tbody>
    </table>

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 89
    Par défaut
    Merci beaucoup pour ton tableau..
    Mais en fait mon gros soucis, c'est que les cours n'ont pas une durée fixe : certains durent 1heure, d'autre 1h30, 1h45 ou 2h00.
    Serait il possible de faire quelque chose du type


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     $duree = 1.30;
    $cours = $matiere.$salle; // je met dans $cours la matiere et la salle que je suis allé chercher dans ma BDD
    <tbody>
            <tr>
                <th>Lundi</th>
                <td>&nbsp;</td>
                <td colspan="$duree" class="">$cours</td>
                <td>&nbsp;</td>
    ...
    ...
          </tr>
    </tbody>

    Merci de ton aide.

  6. #6
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Il te suffit de faire autant de colonnes que de tranches horaires possibles dans une heure.
    Dans ton exemple tu donnes : 1h30, 1h45 ou 2h00 =>
    Ce qui donne 30 minutes, 45 minutes =>
    il te suffit de découper chaque heure en 4, ainsi tu auras les 15 minutes qui te permettront de faire 30 et 45...

  7. #7
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 89
    Par défaut
    Merci pour ton aide je vais essayer cela de suite.
    J'avais déjà penser aux quarts d'heure mais je ne saivais pas comment les regrouper, je ne savais pas que colspan servait a grouper des colonnes.
    J'en déduis donc q'il doit y avoir quelque chose du type rowspan servant a lier les lignes, non?

    Je vais déjà essayer pour une ligne avant de mettre des conditions pour grouper les lignes.

    Merci beaucoup de ton aide!

    Ce forum compte des membres qui ont de réelles connaissances contrairement a d'autres ... c'est pourquoi je reviendrai.
    Je met pas le sujet comme résolu, car je risque de revenir pour mes lignes par exemple.

    Merci encore!

  8. #8
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    oui rowspan ça existe, mais c'est bien ce que je disais c'est un problème HTML et pas PHP, donc je te conseille d'aller sur le forum HTML. Bon courage

  9. #9
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Tiens j'ai retrouvé le lien su sujet qui ressemble un peu au tien

    http://www.developpez.net/forums/sho...ighlight=image

    si ça peut te donner des idées...

  10. #10
    Membre éclairé Avatar de sourivore
    Homme Profil pro
    Lead Tech Front-End
    Inscrit en
    Juin 2005
    Messages
    451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lead Tech Front-End

    Informations forums :
    Inscription : Juin 2005
    Messages : 451
    Par défaut
    Les images en PHP à éviter => temps de chargement long.
    Ce que tu peux faire en HTML fais-le penses-y

  11. #11
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 89
    Par défaut
    Merci jwhite pour le lien, j'ai cherche tout a l'heure mais n'était remonté qu'a debut mai ...

    Sinon, je vais continuer la technique que l'on m'a donné sur le forum!
    J'ai quelques soucis, voic moi code :

    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
     
    <?php
    $duree = 6; // la durée en 1/4 d'heure, est fixée pour le moment, et sera calculée par la suite
    // Séléction et affichage des matières du Lundi
    $matiere_lundi = mysql_query("SELECT matiere FROM final WHERE jour='Lundi' && heure_deb='8'");
    while ($donnees = mysql_fetch_array($matiere_lundi) )
    {
    echo $donnees['matiere']; ?><br />    
    <?php
    }
    echo $duree;    // je verifie si mes variables ont mes valeurs
    ?>
     
    <table width="1266" border="1">
    <body>
    ...
    ...
    <tr>
        <th rowspan="4" scope="row">Lundi</th>
        <td bgcolor="#66FFCC">A</td>
        <td bgcolor="#66FFCC" colspan="$duree" class="">$matiere_lundi</td>
        <td bgcolor="#66FFCC">&nbsp;</td>
    ...
    ...
    Le problème est que ce ne prend pas en compte mon $duree donc ca ne prend que la premiere case, et de plus ca affiche $matiere_lundi alors que $matiere_lundi contient allemand.

    Pourriez vous me donner quelque aide pour que prenne mes 6 cases et qua ca marque allemand ?

    Merci d'avance!

    Il y a du PHP maintenant

    Ah oui, avant d'oublier, y a-t-il un outil de type [php][/php] ?

  12. #12
    Membre éclairé Avatar de sourivore
    Homme Profil pro
    Lead Tech Front-End
    Inscrit en
    Juin 2005
    Messages
    451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lead Tech Front-End

    Informations forums :
    Inscription : Juin 2005
    Messages : 451
    Par défaut
    Déjà pour $matiere_lundi, il faudrait mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        <td bgcolor="#66FFCC" colspan="$duree" class=""><?php echo $matiere_lundi; ?></td>
    Quand tu parle d'outil de type [php][/php] tu veux dire sur le forum car si c'est ça c'est que tu n'as pas vraiment saisi comment fonctionne le php.

  13. #13
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Fais attention de pas confondre les portions de code HTML et les portions PHP

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

Discussions similaires

  1. Positionner des éléments dans une cellule de tableau
    Par Rémy29 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 31/07/2006, 18h33
  2. [langage] Compter des éléments dans un tableau
    Par helene22500 dans le forum Langage
    Réponses: 29
    Dernier message: 23/05/2005, 12h38
  3. [Tableaux]Ajouter des valeurs dans un tableau
    Par Antoine1183 dans le forum Collection et Stream
    Réponses: 13
    Dernier message: 03/04/2005, 14h41
  4. [C#] Affichage des lignes dans un tableau.
    Par maldufleur dans le forum ASP.NET
    Réponses: 4
    Dernier message: 21/04/2004, 12h28
  5. Décaler des valeurs dans un tableau
    Par sh2003 dans le forum Langage
    Réponses: 6
    Dernier message: 20/03/2004, 17h01

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