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 :

Création de tableau [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    380
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 380
    Par défaut Création de tableau
    tout le monde !
    Je cherche a faire un tableau "type facture" c'est a dire:
    Je souhaiterais qu'après mon tableau, une ligne soit rajoutée mais que seule les 2 cases de droites aient des contours visibles.
    C'est pour pouvoir inscrire le mot total = et le total. donc avec un colspan = 2

    Je cherche aussi a ce que ce tableau ait une couleur différente à chaque ligne.
    couleur qui alternera entre 2 couleurs préalablement choisies.

    Quelqu'un saurait il comment faire ???

    d'avance !!!

  2. #2
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Par défaut
    question 1:
    >> une fois ta boucle d'affichage du tableau fini tu lui ajoute une ligne avec un style spécifique.

    Question 2:
    >> dans ta boucle tu test un modulo 2 d'un nombre incrémenter à chaque passage. en fonction du résultat alors tu change le style sur ta ligne.
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

  3. #3
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    380
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 380
    Par défaut
    Merci de ta réponse si rapide Vil'Coyote !

    Pourrais tu être plus précis, j'ai tenté par plusieurs moyens mais rien n'y fait !

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2009
    Messages : 186
    Par défaut
    Pour une clarté de lecture et de compréhension, j'ai fait de multiples echo.
    Pour ne pas t'embêter, tu peux le faire en html et juste entourer des balises <?php et ?> ton code de traitement.

    Si j'ai bien tout compris, ça doit donner un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $num = 0;
    echo 'Mon tableau facture de roxxor<br><table width=50%><tr>';
    echo '<td><b>champ1</b></td>';
    echo '<td><b>champ2</b></td>';
    echo '<td><b>Champ3</b></td>';
    echo '</tr>';
    Dans une boucle (while ou for, c'est toi qui vois suivant ton traitement) :

    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
     
    // Switch de couleur à chaque passage suivant la couleur précédente
    if($color) 
    {
    	$color_td = //Ta couleur numero 1;
    	$color = false;
    } 
    else 
    {
    	$color_td = //Ta couleur numero 2;
    	$color = true;
    }
     
    // Tes valeurs extraites à l'aide de requêtes
    echo '<tr bgcolor=$color_td>'
    echo '<td>'./*valeur1*/.'</td>';
    echo '<td>'./*valeur2*/.'</td>';
    echo '<td>'./*valeur3*/.'</td>';
    echo '</tr>';
     
    // Si c'est le nombre de lignes que tu veux en total
    $num++;
    // Si tu veux le total de ta colonne
    $num = $num+valeur3;
    Puis enfin, pour finir le tableau par ta ligne de total :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    echo '<tr bgcolor=$color_td>'
    echo '<td></td>';
    echo '<td><b>Total</b></td>';
    echo '<td>'.$num.'</td>';
    echo '</tr>';
    echo '</table>'
    Pour ce qui est du style de la derniere ligne, je te laisse deviner

  5. #5
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    380
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 380
    Par défaut
    Merci ptilemare
    j'ai pas tout saisi correctement mais je vais tester sa et je tiens au courant de l'évolution.



    petite question : il me semble que pour le changement de couleur en fonction du survol de la souris, il faut utiliser du javascript ??
    je souhaiterais avoir une 3ème couleur de fond qui changera le fond de ma ligne lors du survol de la souris (ligne qui reprendra la couleur normale lorsque la souris sors de celle ci).

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2009
    Messages : 186
    Par défaut
    En effet, c'est faisable avec du javascript. Je sais pas trop comment alors poste dans la section indiquée

    Sinon c'est aussi faisable avec du CSS et la propriété ":hover" si je ne m'abuse.

    Pour ce qui est de l'explication du code ( Bah oui, si tu copie sans forcément réussir à comprendre c'est pas cool ), on commence par afficher l'en tête de tableau et la première ligne qui contient le nom des champs.

    Ensuite, dans la boucle, tu va faire ton traitement de factures une par une ( Retournées par une requête sur une base de donnée de type SQL, j'imagine. Non ? Peu importe, c'est le même principe.). A toi d'adapter le nombre de champs à afficher, je connais pas la structure de tes factures.

    Pour l'explication du changement de couleur : A chaque passage dans ta boucle, on change la couleur suivant une variable.

    Algorithmiquement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SI variable = TRUE
    ALORS
       On met la couleur 1
       On met la variable à FALSE
    SINON
       On met la couleur 2
       On met la variable à TRUE
    Du coup, tu auras une couleur différente une ligne sur deux.
    Puis on affiche la derniere ligne de total.
    Compris ?

    ( J'devrais être prof tiens ! :p )

  7. #7
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    380
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 380
    Par défaut
    Effectivement, tu ferais, un prof remarquablement excellent !!

    Comme tu le disais précédemment j'ai effectivement un tableau html.
    Je vais tenter d'adapter la solution à celui ci maintenant que c'est beaucoup plus clair !!!

    je me renseigne sur :hover, voir ce que l'on peut en faire.
    je tien informé de l'évolution !

    mille

  8. #8
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    380
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 380
    Par défaut
    Évolution, Évolution ... c'est un bien grand mot !!!

    j'ai tenté ceci :
    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
     
    <table>
    	<tr>
    		<th>Numéro</th>
    		<th>Nom</th>
    		<th>Raison sociale</th>
    		<th>Responsable</th>
    		<th>Adresse</th>
    		<th>Code postal</th>
    		<th>Ville</th>
            	<th>Téléphone</th>
    	</tr>
     
    	<?php $color =0; 
    	   foreach($this->client as $client) : 
     
    		if($color) 
    		{
    	        	$color_td = #C0C0C0;
    			$color = false;
    		} 
    		else 
    		{
    		$color_td = #FFFFFF;
    		$color = true;
    		}
    	?>
     
    	<tr bgcolor=<?php $color_td ?>>
    		<td><?php echo $this->escape($client->numero_client);?></td>
    		<td><?php echo $this->escape($client->nom_client);?></td>
    		<td><?php echo $this->escape($client->numero_raison_sociale_client);?></td>
    		<td><?php echo $this->escape($client->responsable_client);?></td>
    		<td><?php echo $this->escape($client->adresse_client);?></td>
    		<td><?php echo $this->escape($client->code_postal_client);?></td>
    		<td><?php echo $this->escape($client->ville_client);?></td>
    		<td><?php echo $this->escape($client->telephone);?></td>
    	</tr>
    <?php endforeach; ?>
    </table>
    et tout reste blanc... comme avant !!!
    J'ai du surement faire une faute de saisie quelque part... c'est correct ou pas ??

  9. #9
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Pourquoi n'utilisez vous pas modulo comme cela vous l'a été indiqué ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    foreach($rows as $i => $row){
        $color = $i % 2 === 0 ? 'red' : 'blue';
        echo '
        <tr style="background-color:'.$color.'">
            <td>...</td>
        </tr>
        ';
    }
    Aussi, une chaine de caractères en PHP est toujours encapsulés entre apostrophes ou guillemets, c'est la base
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $color_td = '#C0C0C0';

  10. #10
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    380
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 380
    Par défaut
    Pourtant quand je fais des var_dump ($color); dans le if ... else, j'ai bien comme résultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    true
    false
    true 
    false
    true
    false
    ...
    Bizarre ...

  11. #11
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    380
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 380
    Par défaut
    Merci de ta réponse ThomasR
    il me faudrait un foreach dans mon foerach ??

  12. #12
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    380
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 380
    Par défaut Résolu pour l'alternance de couleurs ...
    Il me manquait juste un echo ...

    Voici le code (si sa peut être utile a quelqu'un...)
    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
     
    <table>
    	<tr>
    		<th>Num&eacute;ro</th>
    		<th>Nom</th>
    		<th>Raison sociale</th>
    		<th>Responsable</th>
    		<th>Adresse</th>
    		<th>Code postal</th>
    		<th>Ville</th>
    		<th>Telephone</th>
    	</tr>
     
    <?php 
    	$color = false;
    	foreach($this->client as $client) : 
    	if($color) 
    	{
            	$color_td = '#C0C0C0';
    		$color = false;
    	} 
    	else 
    	{
    		$color_td = '#CC9933';
    		$color = true;
    	}
    ?>
    	<tr bgcolor=<?php echo $color_td; ?>>
    		<td><?php echo $this->escape($client->numero_client);?></td>
    		<td><?php echo $this->escape($client->nom_client);?></td>
    		<td><?php echo $this->escape($client->numero_raison_sociale_client);?></td>
    		<td><?php echo $this->escape($client->responsable_client);?></td>
    		<td><?php echo $this->escape($client->adresse_client);?></td>
    		<td><?php echo $this->escape($client->code_postal_client);?></td>
    		<td><?php echo $this->escape($client->ville_client);?></td>
    		<td><?php echo $this->escape($client->telephone);?></td>
    	</tr>
    <?php endforeach; ?>
    </table>
    Les couleurs choisies sont très moches mais c'est pour l'exemple ...

  13. #13
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2009
    Messages : 186
    Par défaut
    Pour information, les deux méthodes marchent.

    Pour la coloration au survol d'une ligne, je te propose d'aller poster dans la section javascript ou CSS suivant comment tu veux faire ça.

    Bien cordialement

  14. #14
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    380
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 380
    Par défaut
    Effectivement les 2 méthodes fonctionnent, vous êtes des as !!!!

    une autre petite question dans la foulée :
    la dernière ligne de mon tableau ressemble a cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <tr>
    	<td></td>
    	<td></td>
    	<td></td>
    	<td></td>
    	<td></td>
    	<td></td>
    	<td></td>
    	<td></td>
    	<td colspan="2"> total : <?php echo $total;?></td>
    </tr>
    Comment faire pour ne pas avoir l'affichage des bordures des <td></td> qui ne servent à rien ??


  15. #15
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Par défaut
    et pourquoi tu fait pas un colspan de 9 avec un style align à droite de ton texte?
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

  16. #16
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    380
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 380
    Par défaut
    Effectivement j'y ai pensé ...
    Mais ce que cherche c'est de ne pas avoir de bordure le long des cases de gauche.
    ce que je cherche c'est sa : (il manque les barres horizontales ... )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    entete_1| entete_2| entete_3| entete_4|
    donne1  | donnee1 | donnee1 |  donne1 |
    donne2  | donne2  | donne2  |  donne2 |
    donne3  | donne3  | donne3  |  donne3 |
                      | Total   :  $total |
    c'est assez bizarre à expliquer ...

  17. #17
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Par défaut
    donc tu applique un style sans bordure aux div cocerné
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

  18. #18
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    380
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 380
    Par défaut
    Le problème dans l'histoire c'est que j'ai pas de div...
    sinon sa n'a rien de drole ...

  19. #19
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2009
    Messages : 186
    Par défaut
    Je reprends le genre de phrase de Vil'coyote :

    Donc tu applique un certain style à ta balise <tr> concernée

  20. #20
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    380
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 380
    Par défaut Résolu !! Merci les amis !!!
    Style qui serait ??
    parceque je ne veut pas de bordure sur les 8 premier <td></td>
    et des bordure sur les 2 dernier <td></td>

    désolé, je débute ...

    EDIT : style tout simple que voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td style="border : none";></td>
    Merci infiniment de votre gentillesse et de votre aide !!

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

Discussions similaires

  1. création de tableau dans un autre tableau
    Par freestyler dans le forum Delphi
    Réponses: 2
    Dernier message: 02/11/2006, 08h54
  2. erreur création de tableau
    Par fabule dans le forum Collection et Stream
    Réponses: 9
    Dernier message: 20/07/2006, 20h36
  3. Création de tableau
    Par rod59 dans le forum C
    Réponses: 10
    Dernier message: 12/11/2005, 16h40
  4. [CR] Création de tableau et case à cocher
    Par aysse dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 26/11/2003, 17h07

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