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

  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 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
    ahh oki!

    Mais c'est pas grave le php va arriver eh oui tout le contenu de mon tableau viendra d'une BDD, que ce soir les horaires, les matieres, les profs, les salles, enfin tout quoi!

    Désolé de ne pas avoir posté dans le bon forum, je ne programme pas depuis longtemps et comme je travaille sur du php et bein voila j'ai posté la...

    A tres bientot et merci beaucoup pour votre aide!

    Vince

  10. #10
    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...

  11. #11
    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 : 43
    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

  12. #12
    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] ?

  13. #13
    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 : 43
    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.

  14. #14
    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

  15. #15
    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
    Oui pour le forum des balises de bbcode code les balises pour mettre en gras [b][ /b]. J'ai trouvé a la place de [php][/php] c'est [code][ /code] afin que les codes soient plus lisibles.

    J'ai fait le echo juste apres avoir posté tout a l'heure me rendant compte que ca ne risquais pas de marcher. Mais ca ne marchait pas non plus alors j'ai modifié au début :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    echo $donnees['matiere']; ?><br />  
    ==> 
    $s = $donnees['matiere']; 
    echo $s; ?><br /> 
    ...
    ...
    <td bgcolor="#66FFCC" colspan="$duree" class=""><?php echo $s; ?></td>
    ...
    Le soucis est que mon $duree n'est pas pris en compte et je ne sais pas s'il est possible de mettre dans le colspan du php enfin je ne vois pas comment faire.
    Il doit bien y avoir une technique mais laquelle ?

    Merci de votre aide.

    Vince

  16. #16
    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
    On vient de te dire de pas confondre les portions PHP et HTML... Dans une portion HTML pur, le PHP n'est pas interprété.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <td bgcolor="#66FFCC" colspan="<?php echo $duree; ?>" class=""><?php echo $s; ?></td>

  17. #17
    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 : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lead Tech Front-End

    Informations forums :
    Inscription : Juin 2005
    Messages : 451
    Par défaut
    encore une fois :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    colspan = "<?php echo $duree; ?>"
    Ne mélanges surtout pas !
    Pour faire simple on peut dire que PHP génère du HTML mais si tu met du php dans du html de façon brut html ne comprendra rien.

    Donc dans la ligne précédent PHP génère le morceau


    PUIS

    HTML lit ce texte et l'interprète.

  18. #18
    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
    Et au passage (je sais pas si tu y as pensé), colspan et rowspan ne doivent marcher que avec des entiers, donc $duree doit être le nombre de quart d'heures et pas le nombre d'heures

  19. #19
    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 l'aide.
    En fait je viens de le trouver en me disant que j'allais mettre direct mon <?php echo $duree; ?> pour colspan et ca a marché.

    Sinon, oui j'ai tout découpé par quart d'heure car j'avais remarqué que le colspan, donc j'en ai déduis que rowspan aussi, ne prenait pas les chiffres a virgule.

    Merci beaucoup pour l'aide.

    Demain, je vais faire un while contenant un if pour ma ballader sur ma ligne, regarder s'il y a des cours, et mettre les cours direct aux bons endroits.
    Je vais m'amuser

    Merci de l'aide.

  20. #20
    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 : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lead Tech Front-End

    Informations forums :
    Inscription : Juin 2005
    Messages : 451
    Par défaut
    Dernière remarque, tu peux aussi faire ainsi :

    Plutôt que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <td bgcolor="#66FFCC" colspan="<?php echo $duree; ?>" class=""><?php echo $s; ?></td>
    Comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php echo 
    "<td bgcolor='#66FFCC' colspan='".$duree."'>"
    .$s.
    "</td>";
    ?>
    Perso je trouve celà plus clair, enfin c'est une façon de voir

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 5 12345 DernièreDernière

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, 17h33
  2. [langage] Compter des éléments dans un tableau
    Par helene22500 dans le forum Langage
    Réponses: 29
    Dernier message: 23/05/2005, 11h38
  3. [Tableaux]Ajouter des valeurs dans un tableau
    Par Antoine1183 dans le forum Collection et Stream
    Réponses: 13
    Dernier message: 03/04/2005, 13h41
  4. [C#] Affichage des lignes dans un tableau.
    Par maldufleur dans le forum ASP.NET
    Réponses: 4
    Dernier message: 21/04/2004, 11h28
  5. Décaler des valeurs dans un tableau
    Par sh2003 dans le forum Langage
    Réponses: 6
    Dernier message: 20/03/2004, 16h01

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