Consulter tuple specifique au user php/sql

Résolu/Fermé
FLEUR_LYS Messages postés 69 Date d'inscription vendredi 8 mai 2009 Statut Membre Dernière intervention 19 juin 2009 - 12 mai 2009 à 16:44
pyschopathe Messages postés 1973 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 - 15 mai 2009 à 19:47
Bonjour,
je réalise mon projet en php et j'ai le cas ou un employé rempli son formulaire de demande de congé, après le chef va soit l'accepter soit la refusé donc ma question est comment faire pour que l'employé puisse voir la table des formulaireConge et voir juste ces formulaire a lui a son nom (pas le reste)
dans mon application j'ai l'authentification au début
quelqu'un peut m'aider svp c'est vraiment important
voila le code de consultation mais il m'affiche tous les enregistrements:
<?php
include("connex.inc.php");
$idcom=connex("basebank","myparam");
$requete="SELECT * FROM formulaireconge";
$result=@mysql_query($requete,$idcom);
if(!$result)
{
	echo "Lecture impossible";
}
else
{
	$nbcol=mysql_num_fields($result);
	$nbcand=mysql_num_rows($result);
	
	echo "<h5> Il y a $nbcand demande(s) de congé </h5> <br> ";
		
	echo "<table border=\"1\">";
	
	echo "<th>Matricule</th> <th>Nom</th> <th>Prénom</th> <th>Direction</th> <th>Affectation</th> <th>Service</th> <th>Adresse durant le congé</th> <th>Téléphone</th> <th>Nombre de jours demandés: Ouvrables</th> <th>Date de départ</th> <th>Date de retour</th> <th>Signature de l'employé</th> <th>E-mail</th> <th>Inputter</th> <th>Authorizer</th> <th>Observation</th> <th>Signature</th> <th>Droit au congé au 21/12/2009</th> <th>Nombre de jours accordé </th> <th>Nombre de jours ouvrables</th> <th>La Direction Administrative</th> <th>Le Vice Président</th> <th>Titre de congé établi et</th> <th>Sous référence: DA/BK/BD/N°</th>";
	while($ligne=mysql_fetch_array($result,MYSQL_NUM))
	{
    echo "<tr>";
    foreach($ligne as $valeur)
	  {
      echo "<td> $valeur </td>";
		}
		echo "</tr>";
	}
	echo "</table>";
}
?>

merci pour votre aide et bonne soirée
A voir également:

15 réponses

NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 513
12 mai 2009 à 17:08
Bonjour,

Dans formulaire conge il doit y avoir un identifiant de l'employé (je le nomme ici id_employe).
Récupére l'identifiant de l'employé connecté (je le nommerai ici id_user) et fais
$requete="SELECT * FROM formulaireconge where id_employe='$id_user'";
0
FLEUR_LYS Messages postés 69 Date d'inscription vendredi 8 mai 2009 Statut Membre Dernière intervention 19 juin 2009 12
12 mai 2009 à 17:54
salut
le tableau s'affiche mais vide alors que j'ai une demande au nom de ce login voila l'erreur que j'ai
Notice: Undefined variable: login in C:\Program Files\EasyPHP 3.0\www\PFE\site_flash\consul.php on line 86
(en gras la ligne 86 et merci pour votre aide)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Page d'accueil employé</title>
<link href="style.css" rel="stylesheet" type="text/css" />
<link href="layout.css" rel="stylesheet" type="text/css" />
<script src="Scripts/swfobject_modified.js" type="text/javascript"></script>
<script src="SpryAssets/SpryMenuBar.js" type="text/javascript"></script>
<link href="SpryAssets/SpryMenuBarVertical.css" rel="stylesheet" type="text/css" />
</head>
<body id="page2">
<!-- header -->
<div class="header_tal">
  <object id="FlashID" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="766" height="396">
    <param name="movie" value="images/header.swf" />
    <param name="quality" value="high" />
    <param name="wmode" value="opaque" />
    <param name="swfversion" value="8.0.35.0" />
    <!-- Cette balise <param> invite les utilisateurs de Flash Player en version 6.0 r65 et ultérieure à télécharger la version la plus récente de Flash Player. Supprimez-la si vous ne voulez pas que cette invite soit visible. -->
    <param name="expressinstall" value="Scripts/expressInstall.swf" />
    <!-- La balise <object> suivante est destinée aux navigateurs autres qu'IE. Supprimez-la d'IE à l'aide d'IECC. -->
    <!--[if !IE]>-->
    <object type="application/x-shockwave-flash" data="images/header.swf" width="766" height="396">
      <!--<![endif]-->
      <param name="quality" value="high" />
      <param name="wmode" value="opaque" />
      <param name="swfversion" value="8.0.35.0" />
      <param name="expressinstall" value="Scripts/expressInstall.swf" />
      <!-- Le navigateur affichera le contenu alternatif suivant pour les utilisateurs d'un lecteur Flash de version 6.0 ou de versions plus anciennes. -->
      <div>
        <h4>Le contenu de cette page nécessite une version plus récente d’Adobe Flash Player.</h4>
        <p><a href="https://get.adobe.com/flashplayer/"><img src="https://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Obtenir le lecteur Adobe Flash" width="112" height="33" /></a></p>
      </div>
      <!--[if !IE]>-->
    </object>
    <!--<![endif]-->
  </object>
</div>
<!-- content -->
<div class="content_tal">
	<div id="content" class="separate">
		<div class="separate1">
			<div class="cont_height">&nbsp;</div>
			<div class="col_1 green">
				<div class="title_green">
				  <p><img alt="" src="images/2title1.gif" /></p>
				  <p>&nbsp;</p>
				  <p>&nbsp;</p>
				  <p>&nbsp;</p>
			  </div>
				<div class="indent">
				  <ul id="MenuBar1" class="MenuBarVertical">
                    <li><a href="mailto:nomCorrespondant@nomDomaine.fr">Acc&eacute;der &agrave; la boite e-mail</a></li>
                    <li><a class="MenuBarItemSubmenu" href="#">Remplir un formulaire</a>
                      <ul>
                        <li><a href="form-conge-employe.php">Demande de cong&eacute;</a></li>
                        <li><a href="form-sortie-employe.php">Demande d'autorisation de sortie</a></li>
                      </ul>
                    </li>
<li><a href="#" class="MenuBarItemSubmenu">Aide</a>
      <ul>
                        <li><a href="doc-employe.php">Documentation</a></li>
                        <li><a href="apropos-employe.php">A propos</a></li>
                      </ul>
                    </li>
				  </ul>
<p>&nbsp;</p>
				  <p><br clear="all"  />
			      </p>
				  <div class="indent_text"><br clear="all"  />
					</div>
				</div>
			</div>
			<div class="col_2 blue">
				<div class="title_blue"><img alt="" src="images/2title2.gif" /></div>
				<div class="indent">
				  <p>&nbsp;</p>
				  <p><strong>Application employé :</strong></p>
<p>&nbsp;</p>

<?php
include("connex.inc.php");
$idcom=connex("basebank","myparam");
$requete="SELECT * FROM formulaireconge where matricule='$login'";
$result=@mysql_query($requete,$idcom);
if(!$result)
{
	echo "Lecture impossible";
}
else
{
	$nbcol=mysql_num_fields($result);
	$nbcand=mysql_num_rows($result);
	
	echo "<h5> Il y a $nbcand demande(s) de congé </h5> <br> ";
		
	echo "<table border=\"1\">";
	
	echo "<th>Matricule</th> <th>Nom</th> <th>Prénom</th> <th>Direction</th> <th>Affectation</th> <th>Service</th> <th>Adresse durant le congé</th> <th>Téléphone</th> <th>Nombre de jours demandés: Ouvrables</th> <th>Date de départ</th> <th>Date de retour</th> <th>Signature de l'employé</th> <th>E-mail</th> <th>Inputter</th> <th>Authorizer</th> <th>Observation</th> <th>Signature</th> <th>Droit au congé au 21/12/2009</th> <th>Nombre de jours accordé </th> <th>Nombre de jours ouvrables</th> <th>La Direction Administrative</th> <th>Le Vice Président</th> <th>Titre de congé établi et</th> <th>Sous référence: DA/BK/BD/N°</th>";
	while($ligne=mysql_fetch_array($result,MYSQL_NUM))
	{
    echo "<tr>";
    foreach($ligne as $valeur)
	  {
      echo "<td> $valeur </td>";
		}
		echo "</tr>";
	}
	echo "</table>";
}
?>

                  <p>&nbsp;</p>
				</div>
			</div>
			<div class="clear"></div>
		</div>
	</div>
</div>
<!-- footer -->
<div id="footer"><span><a href="http://www.bestbank.com.tn">BestBank.com.tn</a> &copy; 2009 </span> All Rights Reserved</div>
<script type="text/javascript">
<!--
swfobject.registerObject("FlashID");
var MenuBar1 = new Spry.Widget.MenuBar("MenuBar1", {imgRight:"SpryAssets/SpryMenuBarRightHover.gif"});
//-->
</script>
</body>
</html>
0
pyschopathe Messages postés 1973 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135
12 mai 2009 à 20:00
Tu modifies ta requête de la sorte :
$requete="SELECT * FROM formulaireconge WHERE login='".$_SESSION['login']."';";
Où quelque chose dans ce genre là en fonction de la structure de tes données.
0
FLEUR_LYS Messages postés 69 Date d'inscription vendredi 8 mai 2009 Statut Membre Dernière intervention 19 juin 2009 12
12 mai 2009 à 22:36
salut
j'ai cette erreur:
Notice: Undefined variable: _SESSION in C:\Program Files\EasyPHP 3.0\www\PFE\site_flash\consul.php on line 85
Lecture impossible


et la ligne 85 c'est la ligne de la requête (je l'ai copier telle qu'elle est vue que moi j'ai login aussi)
0
pyschopathe Messages postés 1973 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135
13 mai 2009 à 10:05
Tu n'as pas oublié le session_start() au début du script ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
FLEUR_LYS Messages postés 69 Date d'inscription vendredi 8 mai 2009 Statut Membre Dernière intervention 19 juin 2009 12
13 mai 2009 à 17:25
salut
je l'ai mise mais j'ai maintenant Lecture impossible
voila le code:
<?php
include("connex.inc.php");
$idcom=connex("basebank","myparam");
$requete="SELECT * FROM formulaireconge WHERE login='".$_SESSION['login']."';";
$result=@mysql_query($requete,$idcom);
if(!$result)
{
	echo "Lecture impossible";
}
else
{
	$nbcol=mysql_num_fields($result);
	$nbcand=mysql_num_rows($result);
	
	echo "<h5> Il y a $nbcand demande(s) de congé </h5> <br> ";
		
	echo "<table border=\"1\">";
	
	echo "<th>Matricule</th> <th>Nom</th> <th>Prénom</th> <th>Direction</th> <th>Affectation</th> <th>Service</th> <th>Adresse durant le congé</th> <th>Téléphone</th> <th>Nombre de jours demandés: Ouvrables</th> <th>Date de départ</th> <th>Date de retour</th> <th>Signature de l'employé</th> <th>E-mail</th> <th>Inputter</th> <th>Authorizer</th> <th>Observation</th> <th>Signature</th> <th>Droit au congé au 21/12/2009</th> <th>Nombre de jours accordé </th> <th>Nombre de jours ouvrables</th> <th>La Direction Administrative</th> <th>Le Vice Président</th> <th>Titre de congé établi et</th> <th>Sous référence: DA/BK/BD/N°</th>";
	while($ligne=mysql_fetch_array($result,MYSQL_NUM))
	{
    echo "<tr>";
    foreach($ligne as $valeur)
	  {
      echo "<td> $valeur </td>";
		}
		echo "</tr>";
	}
	echo "</table>";
}
?>
0
pyschopathe Messages postés 1973 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135
13 mai 2009 à 21:04
Remplace
if ( !$result ) {
   echo "Lecture impossible";
}
par
if ( !$result ) {
   echo 'Lecture impossible<br />';
   echo mysql_error();
}
Et recopie l'erreur ici.
0
FLEUR_LYS Messages postés 69 Date d'inscription vendredi 8 mai 2009 Statut Membre Dernière intervention 19 juin 2009 12
13 mai 2009 à 21:47
salut
voici l'erreur:

Lecture impossible
Champ 'login' inconnu dans where clause
0
pyschopathe Messages postés 1973 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135
14 mai 2009 à 09:41
Ca veut dire que tu n'as pas de champ 'login' dans ta table...
0
FLEUR_LYS Messages postés 69 Date d'inscription vendredi 8 mai 2009 Statut Membre Dernière intervention 19 juin 2009 12
14 mai 2009 à 15:23
dans ma table forulaireconge j'ai
matricule nom prenom direction affectation service adressedurantleconge telephone nbjourouvrable datedepart dateretour signatureemploye mail inputter authorizer observation signature droitconge nbjaccorde nbjouvrable directionadministrative vicepresident titredeconge sousreference etatdemande

et dans ma table user (qui permet l'authentification):
login nom prenom telephone mail motdepasse grade

normalement d'apres vos conseils j'ai compris que je dois avoir un champ en commun et la j'ai pas le login comme vous dite, est ce que c'est faisable seulement sur le nom par exemple ?
Merci beaucoup pour votre aide
0
pyschopathe Messages postés 1973 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135
14 mai 2009 à 15:52
Dans un cas comme celui-ci, la table utilisateur devrait contenir un identifiant unique qui se retrouve dans la table congé. De plus, cela permettrait d'éviter de répéter dans la table de congés les informations concernant l'utilisateur (nom, prenom, telephone, mail).

Le matricule qu'on trouve dans la table congé sert à quoi ?
0
FLEUR_LYS Messages postés 69 Date d'inscription vendredi 8 mai 2009 Statut Membre Dernière intervention 19 juin 2009 12
14 mai 2009 à 15:55
c'est un matricule (numéro) pour chaque employé et d'ailleurs il est unique pour chacun (comme id)
je pense la solution et d'ajouter la matricule dans la table user non ?
0
pyschopathe Messages postés 1973 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135
14 mai 2009 à 16:27
Exactement ! Et puis tu pourras enlever les nom, prenom, telephone, mail de la table congés.

Ta requête deviendra quelque chose comme
SELECT <les champs que tu veux> 
FROM <table utilsateur> u JOIN <table congés> c ON u.matricule=c.matricule 
WHERE u.login=$_POST['login'];
0
FLEUR_LYS Messages postés 69 Date d'inscription vendredi 8 mai 2009 Statut Membre Dernière intervention 19 juin 2009 12
14 mai 2009 à 17:13
merci j'essaye ce soir et je vous tiendrais au courant merci beaucoup
0
FLEUR_LYS Messages postés 69 Date d'inscription vendredi 8 mai 2009 Statut Membre Dernière intervention 19 juin 2009 12
14 mai 2009 à 19:36
salut
bon j'ai pas supprimer le nom, prénom, car je veux que ca reste 'jespère que ca cause pas de conflit
j'ai réaliser votre requête mais ca renvoie une erreur
Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in C:\Program Files\EasyPHP 3.0\www\PFE\site_flash\consul.php on line 85

code

<?php
include("connex.inc.php");
$idcom=connex("basebank","myparam");
$requete="SELECT * FROM user u JOIN formulaireconge c ON u.matricule=c.matricule WHERE u.login=$_POST['login']";
$result=@mysql_query($requete,$idcom);
if ( !$result ) {
   echo 'Lecture impossible<br />';
   echo mysql_error();
}
else
{
	$nbcol=mysql_num_fields($result);
	$nbcand=mysql_num_rows($result);
	
	echo "<h5> Il y a $nbcand demande(s) de congé </h5> <br> ";
		
	echo "<table border=\"1\">";
	
	echo "<th>Matricule</th> <th>Nom</th> <th>Prénom</th> <th>Direction</th> <th>Affectation</th> <th>Service</th> <th>Adresse durant le congé</th> <th>Téléphone</th> <th>Nombre de jours demandés: Ouvrables</th> <th>Date de départ</th> <th>Date de retour</th> <th>Signature de l'employé</th> <th>E-mail</th> <th>Inputter</th> <th>Authorizer</th> <th>Observation</th> <th>Signature</th> <th>Droit au congé au 21/12/2009</th> <th>Nombre de jours accordé </th> <th>Nombre de jours ouvrables</th> <th>La Direction Administrative</th> <th>Le Vice Président</th> <th>Titre de congé établi et</th> <th>Sous référence: DA/BK/BD/N°</th>";
	while($ligne=mysql_fetch_array($result,MYSQL_NUM))
	{
    echo "<tr>";
    foreach($ligne as $valeur)
	  {
      echo "<td> $valeur </td>";
		}
		echo "</tr>";
	}
	echo "</table>";
}
?>
0
pyschopathe Messages postés 1973 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135
14 mai 2009 à 20:16
$requete="SELECT * FROM user u JOIN formulaireconge c ON u.matricule=c.matricule WHERE u.login='".$_POST['login']."'";
0
FLEUR_LYS Messages postés 69 Date d'inscription vendredi 8 mai 2009 Statut Membre Dernière intervention 19 juin 2009 12
14 mai 2009 à 20:56
salut
j'ai changer la requête , j'ai eu l'affichage de la table maisvide (ne contenant pas la demande) avec cette erreur
Notice: Undefined index: login in C:\Program Files\EasyPHP 3.0\www\PFE\site_flash\consul.php on line 85
0
pyschopathe Messages postés 1973 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135
14 mai 2009 à 22:50
Scuz, tu récupères le login dans la session, remplace $_POST['login'] par $_SESSION['login'].
0
FLEUR_LYS Messages postés 69 Date d'inscription vendredi 8 mai 2009 Statut Membre Dernière intervention 19 juin 2009 12
14 mai 2009 à 23:16
ca m'affiche maintenant la liste des congés de l'utilisateur concerné mais mais j'ai un probleme c'est que le formulaire quand je l'affiche les valeurs des champs par exemple le matricule contient le login et la signature contient un champ qui lui correspond pas ,....
est ce qu'il faut que la table user et la table formulaire congé ont le meme ordre des champs ?
et meme si j'enleve les champs nom, prenom ,.... de la table user je vais laisser le champ mot de passe et la il sera afficher quand l'utilisateur consulte ses propres demandes.
0
pyschopathe Messages postés 1973 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135
15 mai 2009 à 00:34
Dans la requête que je te donnais, il y avait un petit <les champs que tu veux> ou quelque chose du genre... À la place, tu es sensé(e ?) mettre les champs que tu veux récupérer, en les préfixant par le nom de la table (ou u et c pour user et congé puisque tu les définis comme alias dans le FROM). Donc tu mets u.nom, u.prenom, ... et tu ne sélectionne pas le mot de passe, ni les autres champs qui ne t'intéressent pas.
0
FLEUR_LYS Messages postés 69 Date d'inscription vendredi 8 mai 2009 Statut Membre Dernière intervention 19 juin 2009 12
15 mai 2009 à 01:01
oui vous m'avez donner cette requete
SELECT <les champs que tu veux>
FROM <table utilsateur> u JOIN <table congés> c ON u.matricule=c.matricule
WHERE u.login=$_POST['login'];


et moi j'ai réaliser celle la en voulant afficher tous les champs de la table formulaireconge quand matricule de la table formulaireconge est égale au matricule de la table user et biensure le login est bon

$requete="SELECT * FROM user u JOIN formulaireconge c ON u.matricule=c.matricule WHERE u.login='".$_SESSION['login']."'";

c'est faux ?
0
pyschopathe Messages postés 1973 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135
15 mai 2009 à 01:23
Ce n'est pas faux, c'est imprécis et sous-optimal, à la place du '*' mets uniquement les champs dont tu as besoin en toutes lettres, en les préfixant par la table dans laquelle ils se trouvent (ex : u.login).
0
FLEUR_LYS Messages postés 69 Date d'inscription vendredi 8 mai 2009 Statut Membre Dernière intervention 19 juin 2009 12
15 mai 2009 à 01:50
ah d'accord je vais essayer et demain matin je vous tiens au courant
Merci beaucoup et bonne nuit
A demain
0
FLEUR_LYS Messages postés 69 Date d'inscription vendredi 8 mai 2009 Statut Membre Dernière intervention 19 juin 2009 12
15 mai 2009 à 19:23
salut
je reviens vous remercier pour votre aide , ca a marcher.
Merci beaucoup et bonne soirée
0
pyschopathe Messages postés 1973 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135
15 mai 2009 à 19:47
De rien, c'est un plaisir !
0