cs_jumano
Messages postés64Date d'inscriptiondimanche 1 mai 2005StatutMembreDernière intervention29 février 2008
-
24 mars 2007 à 13:01
Mastronic
Messages postés94Date d'inscriptionlundi 8 août 2005StatutMembreDernière intervention13 juin 2012
-
25 mars 2007 à 22:12
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'
,
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
)) {
<?php } while ($row_rsCourrier = mysql_fetch_assoc($rsCourrier)); ?>
</td>
</tr>
</tbody>
</table>
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 } while ($row_rsCourrier = mysql_fetch_assoc($rsCourrier)); ?>
</td>
</tr>
</tbody>
</table>
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é).)
Mastronic
Messages postés94Date d'inscriptionlundi 8 août 2005StatutMembreDernière intervention13 juin 2012 25 mars 2007 à 17:54
Tu as bien mis ta requete Select.., et tes tests 'if ($totalRows_rsVuAffectationINF == 0 ){ ... ' dans la boucle Do..While ?
ou ta requete est placé avant la boucle? se qui expliquerais que tu aurais toujours la meme valeur "totalRows_rsVuAffectationINF" une fois dans la boucle...
Met un autre debug: apres ton sprintf pour former ta requete. echo "Req=[$query_rsVuAffectationINF]";
et aussi $totalRows_rsVuAffectationINF l'avoir recuperer.. : echo "NbLine=[$totalRows_rsVuAffectationINF]"
cs_jumano
Messages postés64Date d'inscriptiondimanche 1 mai 2005StatutMembreDernière intervention29 février 2008 24 mars 2007 à 15:22
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" .
Mastronic
Messages postés94Date d'inscriptionlundi 8 août 2005StatutMembreDernière intervention13 juin 2012 24 mars 2007 à 15:42
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_jumano
Messages postés64Date d'inscriptiondimanche 1 mai 2005StatutMembreDernière intervention29 février 2008 24 mars 2007 à 15:52
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.
Mastronic
Messages postés94Date d'inscriptionlundi 8 août 2005StatutMembreDernière intervention13 juin 2012 24 mars 2007 à 20:12
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";
cs_jumano
Messages postés64Date d'inscriptiondimanche 1 mai 2005StatutMembreDernière intervention29 février 2008 24 mars 2007 à 20:29
J'ai affiché le code source :
si $totalRows_rsVuAffectationINF = 0 alors <tr class="ligne" >
si $totalRows_rsVuAffectationINF = 1 alors <tr class="ligneV" >
cs_jumano
Messages postés64Date d'inscriptiondimanche 1 mai 2005StatutMembreDernière intervention29 février 2008 24 mars 2007 à 20:38
Je me demande en fait si ma requete est judicieuse, puisque apparement je n'arrive pas à faire la correspondance entre les
"id_courar" de ma table "vuaffectation" et les "id_courar" de chaque lignes créées.
Puisque que dès qu'une ligne est visitée c'est l'ensemble des lignes du tableau qui changent de class et pas seulement celle visitée.
Mastronic
Messages postés94Date d'inscriptionlundi 8 août 2005StatutMembreDernière intervention13 juin 2012 25 mars 2007 à 13:41
j'avais pas vue le dernier post..
Tu dit: 'Puisque que dès qu'une ligne est visitée c'est l'ensemble des lignes du tableau qui changent de class '
et tu confirme dans le post precedant que tu a bien LigneV et Ligne suisvant la ligne visité...
c une contracdiction..
cs_jumano
Messages postés64Date d'inscriptiondimanche 1 mai 2005StatutMembreDernière intervention29 février 2008 25 mars 2007 à 15:20
Ce n'est pas une contradiction,
Puisque dès qu'une ligne est visité dans le tableau c'est l'ensemble des lignes du tableau qui change de class, alors qu'il ne devrait y avoir que la ligne visitée.
Donc je pense que ma requète ne doit pas être bonne, ou alors ce n'est possible que si j'utilisais un tableau fixe et non un tableau dynamique qui me créé autant de ligne que j'ai dans ma BDD.
Mastronic
Messages postés94Date d'inscriptionlundi 8 août 2005StatutMembreDernière intervention13 juin 2012 25 mars 2007 à 17:04
je ne comprend pas... avant tu me disait:
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.
http://www.phpcs.com/auteurdetail.aspx?ID=502550 J'ai affiché le code source :
si $totalRows_rsVuAffectationINF = 0 alors <tr class="ligne" >
si $totalRows_rsVuAffectationINF = 1 alors <tr class="ligneV" >
Maintenant tu me dit lme contraire.. ou alors je n'ai rien compris...
Donc pour les 3 lignes afficher, tu les as tous à 1 si tu active le debug ?
cs_jumano
Messages postés64Date d'inscriptiondimanche 1 mai 2005StatutMembreDernière intervention29 février 2008 25 mars 2007 à 19:10
Merci un grand MERCI
Effectivement ma requète $query_rsVuAffectationINF se trouvait à l'extérieure de ma boucle.
Maintenant cela fonctionne à merveille.
Merci encore pour tes précieux conseils.