Accueil > Forum > > > > Tableau dynamique et couleur des lignes
Tableau dynamique et couleur des lignes
samedi 24 mars 2007 à 13:01:39 |
Tableau dynamique et couleur des lignes

jumano
|
Bonjour, Débutant en PHP Je travaille actuellement sur l'élaboration d'une petite application WEB de gestion de courriers ARRIVES et DEPARTS. J'ai une BDD avec les tables suivantes : Une table : courrierar
| PHP: | | CREATE TABLE ` courrierar ` ( ` ID_COURAR ` bigint ( 20 ) NOT NULL auto_increment , ` NUMAR ` bigint ( 20 ) NOT NULL , ` ANNEEAR ` year ( 4 ) NOT NULL , ` ID_TYPE ` int ( 11 ) NOT NULL , ` ID_NATURE ` int ( 11 ) NOT NULL , ` DATECOURAR ` date NOT NULL , ` REFCOURAR ` text NOT NULL , ` ENRCOURAR ` date NOT NULL , ` ID_CLASSEMENT ` int ( 11 ) NOT NULL , ` ID_SOUSCLASS1 ` int ( 11 ) default NULL , ` ID_SOUSCLASS2 ` int ( 11 ) default NULL , ` OBJET ` text NOT NULL , ` ID_EMETTEUR ` int ( 11 ) NOT NULL , ` FICJOINTAR ` varchar ( 100 ) default NULL , ` STATAFF ` char ( 3 ) default 'NON' , ` COUR_TOUS ` varchar ( 3 ) NOT NULL default 'NON' , ` NOM_UTIL ` varchar ( 50 ) NOT NULL , ` DATE_MODIF ` date NOT NULL , ` CLOTURE ` varchar ( 3 ) NOT NULL default 'NON' , PRIMARY KEY (` ID_COURAR `) ) ENGINE = InnoDB DEFAULT CHARSET = latin1 AUTO_INCREMENT = 33 ; | Puis une table : affectation | PHP: | | CREATE TABLE ` affectation ` ( ` ID_AFFECT ` bigint ( 20 ) NOT NULL auto_increment , ` DATE_AFFECT ` date NOT NULL , ` ID_COURAR ` bigint ( 20 ) default NULL , ` NOM_UTIL ` varchar ( 50 ) NOT NULL , ` OBSAFFECT ` text , ` ID_BUREAUACT ` bigint ( 20 ) default NULL , ` ID_BUREAUINF ` bigint ( 20 ) default NULL , PRIMARY KEY (` ID_AFFECT `) ) ENGINE = InnoDB DEFAULT CHARSET = latin1 AUTO_INCREMENT = 174 ; | Et une table : vuaffectation | PHP: | | CREATE TABLE ` vuaffectation ` ( ` ID_VUAFFECT ` bigint ( 20 ) NOT NULL auto_increment , ` ID_COURAR ` bigint ( 20 ) NOT NULL , ` ID_BUREAUACT ` int ( 11 ) default NULL , ` ID_BUREAUINF ` int ( 11 ) default NULL , ` NOM_UTIL ` varchar ( 50 ) NOT NULL , PRIMARY KEY (` ID_VUAFFECT `) ) ENGINE = InnoDB DEFAULT CHARSET = latin1 AUTO_INCREMENT = 7 ; | Ma première table se remplie à l'aide d'un formulaire d'enregistrement d'un courrier ARRIVE. Ma deuxième table me sert a affecté le courrier enregistré.
Lorsque l'utilisateur se connecte il arrive sur une première page où je créé un tableau dynamique (zone répétée) en fonction du nombre d'enregistrement lui ayant été affecté et en fonction de la date d'enregistrement, ici en l'occurence l'utilisateur a un statut lui permettant de voir tout le courrier si le champs "cour_tous" de la table "courrierar" est "oui". Ma requete SQL est la suivante :
| PHP: | <?php $colname_rsCourrier = "-1" ; if (isset( $dateUS )) { $colname_rsCourrier = ( get_magic_quotes_gpc ()) ? $dateUS : addslashes ( $dateUS ); } mysql_select_db ( $database_CnxCourrier , $CnxCourrier ); $query_rsCourrier = sprintf ( "SELECT ID_COURAR, NUMAR, ANNEEAR, ENRCOURAR, OBJET, STATAFF, COUR_TOUS, emetteur.ID_EMETTEUR, emetteur.EMETTEUR, courrierar.ID_EMETTEUR FROM courrierar, emetteur WHERE ENRCOURAR='%s' AND courrierar.COUR_TOUS='OUI' AND emetteur.ID_EMETTEUR=courrierar.ID_EMETTEUR ORDER BY ID_COURAR DESC" , $colname_rsCourrier ); $query_limit_rsCourrier = sprintf ( "%s LIMIT %d, %d" , $query_rsCourrier , $startRow_rsCourrier , $maxRows_rsCourrier ); $rsCourrier = mysql_query ( $query_limit_rsCourrier , $CnxCourrier ) or die( mysql_error ()); $row_rsCourrier = mysql_fetch_assoc ( $rsCourrier ); ?> | Mon code est le suivant pour afficher mon tableau :
| Code: | | <body> <table width="560" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#333333" background="images/bgtbl.gif"> <tr class="tableau"> <td width="65"><div align="center">N°</div></td> <td width="65"><div align="center">Date</div></td> <td width="230"><div align="center">Objet</div></td> <td width="160"><div align="center">Emetteur</div></td> <td width="40"><div align="center">Lu</div></td> </tr> <?php do { ?> <?php // Création de la variable $enrcourar $enrcourar = $row_rsCourrier['ENRCOURAR']; // coupe la date $annee = substr($enrcourar,0,4); $mois = substr($enrcourar,5,2); $jour = substr($enrcourar,8,2); // on regroupe les élements et on créé la variable $enrcourar_FR $enrcourar1_FR = $jour."-".$mois."-".$annee ; ?> <tr bgcolor="#FFFFFF" class="texte"> <td><div align="center"><a href="FicheCourARInf.php?id_courar=<?php echo $row_rsCourrier['ID_COURAR']; ?>"><?php echo $row_rsCourrier['NUMAR']; ?>/<?php echo $row_rsCourrier['ANNEEAR']; ?></a></div></td> <td><div align="center"><?php echo "$enrcourar_FR"; ?></div></td> <td align="justify"><?php echo $row_rsCourrier['OBJET']; ?></td> <td><div align="left"><?php echo $row_rsCourrier['EMETTEUR']; ?></div></td> </tr> <?php } while ($row_rsCourrier = mysql_fetch_assoc($rsCourrier)); ?> </table> </body>
| Sur chaque ligne créée j'ai un lien hypertext qui renvoir vers une page qui permet de voir le detail du courrier arrivé. Lorsque l'on clic sur ce lien je remplis les champs de ma table "vuaffectation".
Ce que je cherche à obtenir (comme les liens hypertexts redeviennent non visités après une purge de l'historique et des fichiers temps du navigateur), c'est de faire une requete SQL me permettant de savoir si le lien a déjà été visité (d'où la création de ma table "vuaffectation"). J'ai donc créé la requete suivante :
| PHP: | <?php $colname_rsVuAffectationINF = "-1" ; if (isset( $row_rsCourOfficier [ 'ID_COURAR' ])) { $colname_rsVuAffectationINF = ( get_magic_quotes_gpc ()) ? $row_rsCourrier [ 'ID_COURAR' ] : addslashes ( $row_rsCourrier [ 'ID_COURAR' ]); } mysql_select_db ( $database_CnxCourrier , $CnxCourrier ); $query_rsVuAffectationINF = sprintf ( "SELECT ID_COURAR, ID_BUREAUINF, NOM_UTIL FROM vuaffectation WHERE ID_COURAR = '%s'" , $colname_rsVuAffectationINF ); $rsVuAffectationINF = mysql_query ( $query_rsVuAffectationINF , $CnxCourrier ) or die( mysql_error ()); $row_rsVuAffectationINF = mysql_fetch_assoc ( $rsVuAffectationINF ); $totalRows_rsVuAffectationINF = mysql_num_rows ( $rsVuAffectationINF ); ?> | J'ai également créé deux class dans mon fichier CSS, une "ligne" et l'autre "ligneV". Mon code pour afficher le tableau devient alors :
| Code: | | <body> <?php if ($totalRows_rsVuAffectationINF == 0 ){ $ligne = "ligne"; } ?> <?php if ($totalRows_rsVuAffectationINF > 0 ){ $ligne = "ligneV"; } ?> <tr class="<?php echo ($ligne);?>"> <td><div align="center"><a href="FicheCourARInf.php?id_courar=<?php echo $row_rsCourrier['ID_COURAR']; ?>"><?php echo $row_rsCourrier['NUMAR']; ?><?php echo $row_rsCourrier['ANNEEAR']; ?></a></div></td> <td><div align="center"><?php echo "$enrcourar_FR"; ?></div></td> <td align="justify"><?php echo $row_rsCourrier['OBJET']; ?></td> <td><div align="left"><?php echo $row_rsCourrier['EMETTEUR']; ?></div></td> </tr> <?php } while ($row_rsCourrier = mysql_fetch_assoc($rsCourrier)); ?> </table> </body>
| Donc lorque le lien d'une ligne a été sélectionné la ligne prend la class "ligneV" sinon elle prend la class "ligne". Jusque là tout fonctionne à merveille, mais le gros problème est que si une de mes lignes a été sélectionnée, toutes les lignes apparaissent comme sélectionnées. Je pense que cela vient de ma requete "$query_rsVuAffectationINF".
Voilà, si quelqu'un avait une idée ou une astuce. Merci de vos conseils. PS : je ne suis pas un puriste au niveau du code PHP (et oui j'utilise Dreamweaver, désolé).)
|
|
samedi 24 mars 2007 à 15:01:58 |
Re : Tableau dynamique et couleur des lignes

Mastronic
|
Bonjour, Peut tu regarder au niveau de la base de donnée si tous les lignes sont à l'etat Lu.
j'ai du mal a me retrouver dans ton code. ou fait tu l'update, ou insert pour dire que la ligne à etais selectioné ?
|
|
samedi 24 mars 2007 à 15:22:03 |
Re : Tableau dynamique et couleur des lignes

jumano
|
Bonjour, J'ai effectivement regarder ma table "vuaffectation" et toutes les lignes ne sont pas "lu". L'insert dans ma table "vuaffectation" se fait lors du clic sur l'hyperlien permettant d'accèder à la page de détails du courrier. Je pense que mon erreur vient de ma requete SQL "$query_rsVuAffectationINF", mais je n'arrive pas à faire correspondre les enregistrements. C'est à dire que dès qu'une ligne du tableau a été lu systématiquement toute les lignes sont considérées comme "lu" alors qu'elles 'apparaissent pas comme telles dans ma table "vuaffectation" .
|
|
samedi 24 mars 2007 à 15:42:54 |
Re : Tableau dynamique et couleur des lignes

Mastronic
|
le dernier code n'est pas entier..
donc normalement, c avec $totalRows_rsVuAffectationINF que tu decide via le CSS de mettre le liens d'une couleur, ou une autre pour les differenciés... fait un mode debug pour affciher $totalRows_rsVuAffectationINF avant le liens.
|
|
samedi 24 mars 2007 à 15:52:49 |
Re : Tableau dynamique et couleur des lignes

jumano
|
J'ai fait un echo pour afficher $totalRows_rsVuAffectationINF et là j'ai la valeur 0 si aucune ligne visitée. Par contre la valeur passe à 1 et reste à 1 quelque soit le nombre de lignes visitées.
|
|
samedi 24 mars 2007 à 19:04:28 |
Re : Tableau dynamique et couleur des lignes

Mastronic
|
jusqu'ici tous est ok. Fait afficher source dans ton explorateur et regarde si tu as bien la bonne classe.
<tr class="ligne"> et <tr class="lignev"> suivant si tu affiche 0 ou 1 ($totalRows_rsVuAffectationINF )
Dans ton code ou est le { de ta boucle while($row_rsCourrier = mysql_fetch...
|
|
samedi 24 mars 2007 à 19:16:03 |
Re : Tableau dynamique et couleur des lignes

Mastronic
|
Montre nous le CSS contenant ligne et lignev
|
|
samedi 24 mars 2007 à 19:40:12 |
Re : Tableau dynamique et couleur des lignes

jumano
|
Voici le code des class dans le CSS : .ligne {font-family: Arial, Helvetica, sans-serif; font-size: 11px; color: #556074; background-color: #9EBEE2;} .ligneV {font-family: Arial, Helvetica, sans-serif; font-size: 11px; color: #556074; background-color: #FFFFFF;}
Pour ce qui est le { de ma boucle : Elle commence par : <?php do { ?> et fini par <?php } while ($row_rsCourrier = mysql_fetch_assoc($rsCourrier)); ?>
|
|
samedi 24 mars 2007 à 20:12:34 |
Re : Tableau dynamique et couleur des lignes

Mastronic
|
je comprend mieux le code maintenant.. ^^ tu fait en fonction de " mysql_num_rows " le nombre de ligne que ton select retourne... regarde la source que ca te donne ( Sous IE: Affichage > Source ) si tu as: <tr class="ligne"> et <tr class="lignev"> suivant si tu affiche 0 ou 1 ($totalRows_rsVuAffectationINF )
Colle au besoins le resultat que ca fait ici. tu peut simplifier ton code <?php if ($totalRows_rsVuAffectationINF == 0 ) $ligne = "ligne"; else $ligne = "ligneV"; } ?>
|
|
samedi 24 mars 2007 à 20:29:07 |
Re : Tableau dynamique et couleur des lignes

jumano
|
J'ai affiché le code source : si $totalRows_rsVuAffectationINF = 0 alors <tr class="ligne" > si $totalRows_rsVuAffectationINF = 1 alors <tr class="ligneV" >
|
|
Cette discussion est classée dans : id, not, default, rscourrier, rsvuaffectationinf
Répondre à ce message
Sujets en rapport avec ce message
Dernières réponses aux post en haut du forum [ par porciner ]
Bonjour, j'ai un problème :J'ai fait un forum et je voudrais que les titres des posts soient affichés en tenant compte de leur dernière réponse et non
besoin d'aide pour une analyse [ par speedylol ]
j'aurais besoins d'une analyse suivant merise pour c'est table ,j'ai perdu toute mon analyse et je doit terminée mon mémoire pour remettre ce soir il
creation *.sql [ par westsider ]
bonjour,je cherche un script pour creer un fichier *.sql coéplet, j'en ai qui fait ca :create table geneve ( id int(11) not null auto_increment, tit
Problème forum [ par Ssnacke ]
J'ai voulu crée un forum moi même parce que l'inconvénient avec des forums phpbb et autres c'est que les membres doivent toujours se réinscrire deux f
CREATE TABLE [ par simon0000 ]
salut tous le monde est ce que quelque un pourais me dir pourquoi ce code ne me marche pasmerciCREATE TABLE shop_commandes ( ID int(5) DEFAULT '0' N
Résultat d’une requete [ par djinko ]
Bonjour, J’ai crée un espace membre et j’aimerai pouvoir consulter les fiches à l’aide d’un formulaire mais je ne sais pas comment faire pour récupé
Insertin de donnees via un fichier externe [ par jeremay ]
Bonjour, j'ai besoin d'un peu d'aide sur un import d'un fichier CSV alors je m'explik :- j'ai 4 tables : CREATE TABLE `marque` ( `id_marq` int(11) NO
Pb relation entre deux tables ! [ par milkasoprano ]
Bonjour tous le monde, apres 2 heures de recherches je narrive pas a mettre en relation "deux tables" pour afficher un while avec les donnés ! c un p
problème d'update dans bdd... [ par djinko ]
Bonsoir,J'ai deux tables :---------------------------------------------------------------------------------------CREATE TABLE `membre` ( `id_membre
Tables liées [ par Loumir ]
Bonjour,J'apprend en construisant et à chaque saut de puce je tombe dans un gouffre ! Pouvez-vous me sortir de celui-là ?J'ai trois tables la troisiè
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|