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

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Récupérer un numéro par rapport au login

par d0m » 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)

par Z3lg4dis » 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

par d0m » 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.

par Z3lg4dis » 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.

par d0m » 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

par Z3lg4dis » 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 } ?>

par Z3lg4dis » 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

par d0m » 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?

par Z3lg4dis » 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

par d0m » 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.

par Z3lg4dis » 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.

par d0m » 12 oct. 2007, 18:02

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

par Z3lg4dis » 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

par d0m » 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?

par Z3lg4dis » 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