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

Eléphant du PHP | 66 Messages

11 oct. 2007, 17:04

RE

Voila j'ai créé ma page de demande d'intervention :
<?php
$date = date("d-m-Y");
$heure = date("H:i");
$sql = "SELECT 
I.num_interv, I.date_demande, I.heure_demande, I.description, I.num_user,US.login_user, US.pass_user, S.num_service, S.nom_service,
I.num_service, I.num_urg, U.num_urg, U.nom_urg, US.num_user, US.nom_user, US.prenom_user, I.num_tech, T.num_tech, T.nom_tech, T.prenom_tech

FROM intervention I, urgence U, users US, technicien T, service S
WHERE U.num_urg = I.num_urg
AND I.num_user = US.num_user
AND I.num_tech = T.num_tech
AND S.num_service = I.num_service";

$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 print_r($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 print_r($heure) ?>"></td>
		  </tr>
		</table>
		<table>
		  <tr>
		    <td width="220"><span class="intitule_lig">Service : </span></td>
			<td>&nbsp;&nbsp;<input name="service" type="text" size="31"  readonly="enable" value="<?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 } ?>
Le problème est que au niveau de l'utilisateur et du service mon formulaire récupère des chaîne de caractère alors que dans ma table intervention je souhaite récupérer le numéro de l'utilisateur et le numéro de service.

A savoir que le nom du demandeur de l'interv je le récupère grace à mes variables de session.

Merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

11 oct. 2007, 17:17

Tu peux utiliser un select à la place de ton input (avec ton id en value et ton libellé affiché) ou simplement ajouter un champ hidden qui contient l'id associé et que tu utilises pour l'enregistrement en ignorant le libellé :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 66 Messages

11 oct. 2007, 17:35

ok ça marche merci c'est bon c'était tout con :)

Par contre je ne vois pour pour l'utilisateur car j'ai besoin du numéro et dans mes variables de sessions je ne récupère que le login

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

12 oct. 2007, 11:22

Dans ta session tu n'as que ce que tu y mets.. si tu n'y mets que le login, tu n'y retrouveras que le login :)
C'est donc à toi d'y ajouter l'id lorsque l'utilisateur s'authentifie si tu veux pouvoir en disposer par la suite :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 66 Messages

12 oct. 2007, 16:29

oki c'est bon je te remercie mais là j'ai un problème dans ma requête

Donc voila ma requête :
<?php
$slogin = $_SESSION['login'];
$sql = "SELECT 
I.num_interv, I.date_demande, I.heure_demande, I.description, I.num_user,US.login_user, US.pass_user, US.num_statut,
I.num_service, I.num_urg, U.num_urg, U.nom_urg, US.num_user, US.nom_user, US.prenom_user, I.num_tech, T.num_tech, T.nom_tech, T.prenom_tech, C.num_statut, C.nom_statut

FROM intervention I, urgence U, users US, technicien T, statut C

WHERE U.num_urg = I.num_urg
AND I.num_user = US.num_user
AND I.num_tech = T.num_tech
AND C.num_statut = US.num_statut
AND US.login_user = '".$slogin."'"; 

$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 } ?>
En fait depuis que j'ai rajouté la jointure
AND C.num_statut = US.num_statut


Les résultats de la requête ne s'affichent plus dans ma page.

Pourtant dans ma table STATUT j'ai créé le num_statut et je l'ai mis dans ma table USERS également avec le même type c'est à dire entier

Je ne vois pas ce qu'il ne va pas.

d0m
Mammouth du PHP | 1141 Messages

12 oct. 2007, 17:16

en essayant d'enlever la jointure, la requête refonctionne bien?

Eléphant du PHP | 66 Messages

12 oct. 2007, 17:48

A propos en haut de ma page je mets ceci
session_start();

if(!isset($_SESSION['login']) && !isset($_SESSION['pass'])) {
  echo 'Vous n\'êtes pas autoris´ à acceder à cette zone';
  exit;
}
Et à toutes mes autres pages ainsi que sur ma page de login j'ai mis cette commande en haut

En fait quand je vire complètement ma requête ma page s'affiche normalement

Je galère là je ne vois pas ce qu'il y a du tout

d0m
Mammouth du PHP | 1141 Messages

12 oct. 2007, 17:54

En fait quand je vire complètement ma requête ma page s'affiche normalement
houla ça devient de plus en plus embrouillé ce que tu racontes.

Sans la requête la page s'affiche correctement mais sans les informations issus de la requête je pense.
Et quand tu mets la requête, qu'est ce qui est affiché exactement? des erreurs sont précisées?

Eléphant du PHP | 66 Messages

12 oct. 2007, 17:59

En fait j'ai découvert le problème en fait ma page apparaît que si le numéro de l'utilisateur est lié à une intervention dans ma tale intervention

Si la personne n'a déclenché aucune interv et qu'elle veut faire une demande la page demande ne s'affiche pas

Je vois pas trop d'où ça peut venir

d0m
Mammouth du PHP | 1141 Messages

12 oct. 2007, 18:02

forcement puisque dans la requête il y a des jointures avec la table Intervention

Eléphant du PHP | 66 Messages

15 oct. 2007, 09:10

bin je ne peux pas faire autrement puisue la date et l'heure de la demande ainsi que le numéro d'ntervention sont dans la table intervention et j'en ai besoin.

d0m
Mammouth du PHP | 1141 Messages

15 oct. 2007, 09:17

je crois que tu as du mal à identifier ce que tu veux :

si tu as besoin des informations de la table intervention lié à l'utilisateur, c'est que tu veux que les utilisateurs qui ont une intervention.

Sinon si tu veux tous les utilisateurs indépendemment des interventions c'est à dire même ceux qui n'ont aucune intervention, tu peux juste faire une requête sur les utilisateurs.

Eléphant du PHP | 66 Messages

15 oct. 2007, 09:21

Non je crois que je me suis mal fait comprendre

En fait l'utilisateur s'identifie il arrive sur la page accueil là il peut voir toutes les interventions qu'il a demandé s'il en as demandé.

Et s'il veut en demander une il a un lien qui l'amène sur une page demande où la un formulaire doit s'affciher et le problème se préente ici car si l'utilisateur n'a jamais fait de demande ce formaulaire ne s'affiche pas la page reste vide.

Donc en gros au début personne ne pourra jamais faire de demande

d0m
Mammouth du PHP | 1141 Messages

15 oct. 2007, 09:36

Si la personne va faire une demande d'intervention, l'intervention n'existe pas encore donc tu ne devrais pas avoir besoin de la table intervention dans ta requête, si?

Eléphant du PHP | 66 Messages

15 oct. 2007, 09:41

Bin si en fait dans ma page de demande j'ai besoin de ma table intervention car la personne doit donner l'urgence de la demande et je dois passer par ma table interv pour utiliser ma table urgence et je compare également ma variable session avec le login_user et je ne peux relier users que avec intervention