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)

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 = ;


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&deg;</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

Membre Club
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

Membre Club

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

Membre Club

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

Membre Club
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

Membre Club
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" >



1 2

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è


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,702 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.