Récupérer un numéro par rapport au login

Eléphant du PHP | 66 Messages

15 oct. 2007, 10:18

bon je pense que j'ai trouvé la solution seulement dans ma page demande d'interv je récupère dans une variable le login de l'utilisateur qui fait la demande mais dans ma table intervention c'est le numéro de l'utilisateur que je dois récupérer comment je dois faire pour trouver à partir de mon login_user le numéro de l'utilisateur?

Voila la page d'envoi :
<?php 
include ('connexion.inc');

session_start();

if(!isset($_SESSION['login']) && !isset($_SESSION['pass'])) {
  echo 'Vous n\'êtes pas autoris´ à acceder à cette zone';
  exit;
}

$demandeur = $_SESSION['login'];
$date = $_POST['date'];
$heure = $_POST['heure'];
$description = $_POST['descrip'];
$urgence = $_POST['urgence'];
if (empty($description))
    {
echo 'Des champs n\'ont pas été remplis.';  
exit();
    } 
else
{
$sql = "INSERT INTO intervention (num_interv, date_demande, heure_demande, description, num_user, num_urg, num_tech) 
		VALUES ('', '$date', '$heure', '$description', '$demandeur', '$urgence', '')";

$sql_exe = mysql_query($sql) or die('Erreur : ' . mysql_error()); 
}
header("Location: accueil.php");
?>
Et là c'est la page du formulaire pour remplir la demande :
<?php
$slogin = $_SESSION['login'];
$date = date("d-m-Y");
$heure = date("H:i");
$sql = "SELECT S.num_service, S.nom_service, T.num_tech, T.nom_tech, T.prenom_tech, U.num_urg, U.nom_urg, US.num_user, US.nom_user, US.prenom_user, US.login_user, US.pass_user, US.num_user
FROM service S, technicien T, urgence U, users US
Where S.num_service = US.num_service
AND US.login_user = '".$slogin."'";


$sql_exe = mysql_query($sql) or die('Erreur : ' . mysql_error());
while ($Tab = mysql_fetch_array($sql_exe)) 
    {
?>
		<br>
		<form action="envoi_demande.php" method="post">	
		<table>
		  <tr>
		    <td width="220"><span class="intitule_lig">Demandeur : </span></td>
			<td>&nbsp;&nbsp;<input name="demandeur" type="text" size="31" readonly="enable" value="<?php echo $_SESSION['login'] ?>"></td>
		  </tr>
		</table>
		<table>
		  <tr>
		    <td width="220"><span class="intitule_lig">Date de la demande : </span></td>
			<td>&nbsp;&nbsp;<input name="date" type="text" size="31" readonly="enable" value="<?php echo $date ?>"></td>
		  </tr>
		</table>
		<table>
		  <tr>
		    <td width="220"><span class="intitule_lig">Heure de la demande : </span></td>
			<td>&nbsp;&nbsp;<input name="heure" type="text" size="31"  readonly="enable" value="<?php echo $heure ?>"></td>
		  </tr>
		</table>
		<table>
		  <tr>
		    <td width="220"><span class="intitule_lig">Service : </span></td>
<?
$sql = "Select * From service order by nom_service";
$sql_exe = mysql_query($sql) or die('Erreur : ' . mysql_error());{
?>
			<td>&nbsp;&nbsp;<input name="service" type="hidden" size="31"  readonly="enable" value="<?php echo $Tab["num_service"] ?>"><?php echo $Tab["nom_service"] ?></td>
<? } ?>
		  </tr>
		</table>
		<table>
		  <tr>
		    <td width="216"><span class="intitule_lig">Urgence : </span></td>
<?
$sql = "Select * From urgence order by nom_urg";
$sql_exe = mysql_query($sql) or die('Erreur : ' . mysql_error());
?>
			<td>&nbsp;&nbsp;
			<?
            $ld = "<SELECT NAME='urgence'>";
            $ld .= "<OPTION VALUE=0>Choisir niveau de l'urgence</OPTION>";
            while ( $row = mysql_fetch_array( $sql_exe)) {
             $numurg = $row["num_urg"];
			 $nomurg = $row["nom_urg"];
              $ld .= "<OPTION VALUE='$numurg'>$nomurg</OPTION>";
            }
            $ld .= "</SELECT>";
            echo $ld
?>
			</td>
		  </tr>
		</table>
		<table>
		  <tr>
		    <td><span class="intitule_lig">Description de la demande : </span></td>
		  </tr>
		</table>
		<table>
		  <tr>
		    <td><textarea name="descrip" cols="80" rows="10"></textarea></td>
		  </tr>
		</table>
		<br>
		<table width="650" border="0" cellpadding="0">
         <tr>
          <td align="right"><input name="envoi" type="submit" value="Envoyer" /></td>
          <td align="left"><input name="reset" type="reset" value="Annuler" /></td>
         </tr>
        </table>
		</form>
<?php } ?>

d0m
Mammouth du PHP | 1141 Messages

15 oct. 2007, 10:25

soit tu as une mauvaise architecture pour ta base de données, soit tu tentes de récupérer des informations inutiles pour ton formulaire de demande.

Simulons :
L'utilisateur veut faire une demande d'intervention :
il clique sur le bouton "demande d'intervention"
A ce stade, l'intervention n'existe pas encore, ni aucune données concernant cette nouvelle intervention.
L'urgence concerne l'intervention, nan? donc pas besoin de faire appel à l'urgence de l'intervention à ce stade.

Donc pourquoi précisement accéder à ces informations?

Il faut bien identifier lorsque tu affiches le formulaire de demande :
- les informations qui sont à entrer par l'utilisateur (listes déroulantes, champs textes)
- les informations que tu sort de la base et qui seront utilisés par le formulaire, non pas à l'enregistrement mais vraiment utiles pour la saisie

Eléphant du PHP | 66 Messages

15 oct. 2007, 10:37

Bin dans mon formulaire de demande l'utilisateur doit choisir l'urgence de sa demande donc j'ai bien besoin de ma table urgence si je veux pouvoir afficher dans ma liste déroulante les types d'urgences sélectionnables.

d0m
Mammouth du PHP | 1141 Messages

15 oct. 2007, 11:01

Bin dans mon formulaire de demande l'utilisateur doit choisir l'urgence de sa demande donc j'ai bien besoin de ma table urgence si je veux pouvoir afficher dans ma liste déroulante les types d'urgences sélectionnables.
Dans ce cas tu peux faire directement une requete pour les différents types d'urgences :

Code : Tout sélectionner

SELECT num_urg,nom_urg FROM urgence
et nul besoin de la table intervention.

Eléphant du PHP | 66 Messages

15 oct. 2007, 14:07

C'est bon mon enregistrement d'interv fonctionne

mais je n'arrive pas à afficher à la page d'accueil les interventions que la personne à déclenché je n'ai pas d'erreur mais rien ne s'affiche
<?php
$numuser = $_SESSION['nuser'];
$sql = "SELECT I.num_user, I.date_demande, I.heure_demande, I.description, I.num_user, I.num_urg, I.num_tech, US.num_user, US.nom_user, US.prenom_user, US.login_user, US.pass_user, U.num_urg, U.nom_urg, T.num_tech, T.nom_tech, 				        T.prenom_tech
		FROM intervention I, users US, urgence U, technicien T  
		WHERE I.num_user = US.num_user
		AND I.num_urg = U.num_urg
		AND I.num_tech = T.num_tech
		AND I.num_user = '".$numuser."'";
$sql_exe = mysql_query($sql) or die('Erreur : ' . mysql_error());
while ($Tab = mysql_fetch_array($sql_exe)) 
    { 

?>
		  <table width="1024">
		   <tr>
		     <td width="100" align="center"><?php echo $Tab["num_interv"]; ?></td>
			 <td width="140" align="center"><?php echo $Tab["date_demande"]; ?></td>
			 <td width="140" align="center"><?php echo $Tab["heure_demande"]; ?></td>
			 <td width="240" align="center"><?php echo $Tab["nom_user"]; ?> <?php echo $Tab["prenom_user"]; ?></td>
			 <td width="170" align="center"><?php echo $Tab["nom_tech"]; ?> <?php echo $Tab["prenom_tech"]; ?></td>
			 <td width="140" align="center"><?php echo $Tab["nom_urg"]; ?></td>
			 <td width="40" align="center"><b><a href="modif_interv.php" title="Modifier la demande">M</a></b></td>
			 <td width="40" align="center"><b><a href="ferme_interv.php?numinterv=<?=$Tab["num_interv"];?>" title="Fermer la demande">F</a></b></td>
		   </tr>
		  </table>
<?php } ?>
Pourtant là sur ce cout la j'ai besoin de toutes mes tables

d0m
Mammouth du PHP | 1141 Messages

15 oct. 2007, 14:30

Si tu as des interventions dans ta table interv vérifie via phpmyadmin l'existence des égalités de jointure :

Code : Tout sélectionner

[...] WHERE I.num_user = US.num_user (1) AND I.num_urg = U.num_urg (2) AND I.num_tech = T.num_tech (3) AND I.num_user = '".$numuser."'"; (4)
prend une intervention de ta table et vérifie que :
- il y a un un user de US avec un num correspondant à num_user de ton intervention (1)
- il y a bien une urgence de U avec un num corespondant à num_urg de ton intervention (2)
- il y a bien un technicien de T avec un num_tech correspondant à num_tech de ton intervention (3)