Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Images > Imagick
Imagick Forum d'entraide pour l'extension Imagick permettant de manipuler des images en PHP (port de l'API ImageMagick).
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/05/2006, 13h37   #1
Membre du Club
 
Étudiant
Inscription : mai 2006
Messages : 89
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2006
Messages : 89
Points : 46
Points : 46
Envoyer un message via MSN à myomyo
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 :
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
myomyo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2006, 13h55   #2
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
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.
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2006, 14h03   #3
Membre du Club
 
Étudiant
Inscription : mai 2006
Messages : 89
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2006
Messages : 89
Points : 46
Points : 46
Envoyer un message via MSN à myomyo
Je sais comment créer une image :

Code :
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>
myomyo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2006, 14h07   #4
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
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 :
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>
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2006, 14h24   #5
Membre du Club
 
Étudiant
Inscription : mai 2006
Messages : 89
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2006
Messages : 89
Points : 46
Points : 46
Envoyer un message via MSN à myomyo
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 :
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.
myomyo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2006, 14h28   #6
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
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...
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2006, 14h41   #7
Membre du Club
 
Étudiant
Inscription : mai 2006
Messages : 89
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2006
Messages : 89
Points : 46
Points : 46
Envoyer un message via MSN à myomyo
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!
myomyo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2006, 14h44   #8
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
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
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2006, 15h00   #9
Membre du Club
 
Étudiant
Inscription : mai 2006
Messages : 89
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2006
Messages : 89
Points : 46
Points : 46
Envoyer un message via MSN à myomyo
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
myomyo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2006, 15h14   #10
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
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...
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2006, 15h18   #11
Membre confirmé
 
Avatar de sourivore
 
Développeur Java
Inscription : juin 2005
Messages : 443
Détails du profil
Informations personnelles :
Localisation : France, Somme (Picardie)

Informations professionnelles :
Activité : Développeur Java

Informations forums :
Inscription : juin 2005
Messages : 443
Points : 278
Points : 278
Les images en PHP à éviter => temps de chargement long.
Ce que tu peux faire en HTML fais-le penses-y
__________________
Toi aussi, crée ton armée de soldat de plomb :
http://souris-bleues.minitroopers.fr/
sourivore est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2006, 15h44   #12
Membre du Club
 
Étudiant
Inscription : mai 2006
Messages : 89
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2006
Messages : 89
Points : 46
Points : 46
Envoyer un message via MSN à myomyo
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 :
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] ?
myomyo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2006, 15h51   #13
Membre confirmé
 
Avatar de sourivore
 
Développeur Java
Inscription : juin 2005
Messages : 443
Détails du profil
Informations personnelles :
Localisation : France, Somme (Picardie)

Informations professionnelles :
Activité : Développeur Java

Informations forums :
Inscription : juin 2005
Messages : 443
Points : 278
Points : 278
Déjà pour $matiere_lundi, il faudrait mettre :

Code :
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.
__________________
Toi aussi, crée ton armée de soldat de plomb :
http://souris-bleues.minitroopers.fr/
sourivore est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2006, 15h55   #14
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
Fais attention de pas confondre les portions de code HTML et les portions PHP
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2006, 16h10   #15
Membre du Club
 
Étudiant
Inscription : mai 2006
Messages : 89
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2006
Messages : 89
Points : 46
Points : 46
Envoyer un message via MSN à myomyo
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 :
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
myomyo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2006, 16h16   #16
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
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 :
1
2
 
<td bgcolor="#66FFCC" colspan="<?php echo $duree; ?>" class=""><?php echo $s; ?></td>
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2006, 16h16   #17
Membre confirmé
 
Avatar de sourivore
 
Développeur Java
Inscription : juin 2005
Messages : 443
Détails du profil
Informations personnelles :
Localisation : France, Somme (Picardie)

Informations professionnelles :
Activité : Développeur Java

Informations forums :
Inscription : juin 2005
Messages : 443
Points : 278
Points : 278
encore une fois :
Code :
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.
__________________
Toi aussi, crée ton armée de soldat de plomb :
http://souris-bleues.minitroopers.fr/
sourivore est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2006, 16h19   #18
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
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
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2006, 16h44   #19
Membre du Club
 
Étudiant
Inscription : mai 2006
Messages : 89
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2006
Messages : 89
Points : 46
Points : 46
Envoyer un message via MSN à myomyo
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.
myomyo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2006, 16h53   #20
Membre confirmé
 
Avatar de sourivore
 
Développeur Java
Inscription : juin 2005
Messages : 443
Détails du profil
Informations personnelles :
Localisation : France, Somme (Picardie)

Informations professionnelles :
Activité : Développeur Java

Informations forums :
Inscription : juin 2005
Messages : 443
Points : 278
Points : 278
Dernière remarque, tu peux aussi faire ainsi :

Plutôt que :

Code :
1
2
 
<td bgcolor="#66FFCC" colspan="<?php echo $duree; ?>" class=""><?php echo $s; ?></td>
Comme ceci :

Code :
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
__________________
Toi aussi, crée ton armée de soldat de plomb :
http://souris-bleues.minitroopers.fr/
sourivore est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h24.


 
 
 
 
Partenaires

Hébergement Web