|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : Tableau dynamique et couleur des lignes [ Divers / Débutant(e) ] (jumano)
Informations & options pour cette discussion
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é 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
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|