IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Aide requête SQL dans une page web [PDO]


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Femme Profil pro
    Chargée de développement produit
    Inscrit en
    Mars 2020
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Chargée de développement produit
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2020
    Messages : 1
    Points : 2
    Points
    2
    Par défaut Aide requête SQL dans une page web
    Bonjour à tous,

    J'aurai besoin d'un petit coup de main svp.

    Je vous explique mon but, je travaille pour une entreprise qui vendent des produits à des professionnels et c'est professionnels en question vendent mes produits à leur clients.

    J'ai créer une page permettant au professionnel de se connecter à leur espace membre.
    Dans cette espace membre, ils ont accès à tout les chantier qu'ils ont réalisés avec nos produits.

    Ils ont différentes informations comme, le nom du responsable chantier, l'adresse du chantier, le nombre de produit installé, ...

    Mon problème est que lorsque je me connecte à l'espace professionnel, la société 1 peut voir les chantier réalisé par la société 2, je n'arrive pas à trouver mon erreur me permettant simplement d'avoir les informations correspondant à une seul société et pas à toute les sociétés ayant un compte.

    Je vous mets mon code pour être un peu plus claire.

    Ma page de connexion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
    <?php
        /* Connexion */
    	try{
     		$connect = new PDO('mysql:host=localhost;dbname=gestion_toiture', 'root', '');
        	}
        	catch (PDOException $e){	
            	exit('problème de connexion à la base');
        	} 
     	if(isset($_POST['mail']) AND isset($_POST['mdp'])) {
     
            	if(!empty($_POST['mail']) AND !empty($_POST['mdp'])) {
    			$mail = $_POST['mail'];
    			$mdp= $_POST['mdp'];
        /* Requête pour récupérer les enregistrements répondant à la clause : champ du pseudo et champ du mdp de la table = pseudo et mdp posté dans le formulaire */
            		$requete = $connect->prepare('SELECT * FROM etancheur WHERE mail= :mail AND mdp= :mdp ');
       			$requete ->execute(array(
    				'mail' => $mail, 
    				'mdp' => $mdp));
     
        			if ($row = $requete->fetch(PDO::FETCH_ASSOC)){
    				session_start();
    					$_SESSION['prenom_nom'] = $row['prenom_nom'];
    					$_SESSION['mail'] = $mail;
    					$_SESSION['mdp'] = $mdp;
    					$_SESSION['id_etancheur'] = $id_etancheur;
    					'Vous êtes connecté ! <br/>';
    					header("Location: profiletancheur.php?id_etancheur=".$_SESSION['prenom_nom']);
    			}
                        	else {
                            	$erreur ="Identifiant ou Mot De Passe incorrect.";
                        	}
                        		$requete->closeCursor();
    		} else {
          			$erreur = "Tous les champs doivent être complétés !";
       		}
    	}
    ?>
    <html>
        <head>
           <meta charset="utf-8">
            <!-- importer le fichier de style -->
            <link rel="stylesheet" href="styleconnexionetancheur.css" media="screen" type="text/css" />
        </head>
        <body>
           <div id= "container">
              <form method="POST" action="">
                 <h1>Connexion</h1>
                 <label><b>Mail : </b> </label>
              <input type="text" placeholder="Entrer votre mail" name="mail" /></p>
              <label> <b>Mot de passe :</b> </label>
              <input type="password" placeholder="Entrer votre mot de passe" name="mdp" /></p>
              <input type="submit" name='formconnexion' value="Se connecter"  /></p>
              </form>
              <?php
                    if(isset($erreur)){
                            echo '<font color="red">'.$erreur."</font>";
                    }
              ?>
           </div>
       </body>
        	<form>
            <button type="submit" formaction="http://localhost/accueil.php";">Retour accueil</button>
           </form>
    </html>
    Ma page profil professionnel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
     
    <?php
    	//inclusion de fichier de configuration
    	include('config.php');
    ?>
    <html>	
    	<head>
          	<meta charset="utf-8">
    	<link rel="stylesheet" href="styleprofiladministrateur.css" media="screen" type="text/css" />
       	</head>
           	<body>
     
            	<?php	
    			if(!isset($_SESSION['mail']) || !isset($_SESSION['mdp'])){
    				//l'utilisateur n'est pas connecté
    				echo '<p>Vous n\'êtes pas encore connecté
    				<a class = "btn btn-sm btn-primary" href = "connexionetancheur.php"><i class = "glyphicon glyphicon-off"></i> Connexion</a></p>';
    			}
    			else{
    				// il est connecté on recupere ses infos
    				$id_etancheur = $_SESSION['id_etancheur'];
    				$prenom_nom = $_SESSION['prenom_nom'];
    				$mail = $_SESSION['mail'];
    				$mdp = $_SESSION['mdp'];
    				$requete = $bdd->prepare('SELECT * FROM etancheur WHERE mail= :mail AND mdp= :mdp ') or die('Erreur de la requête SQL');
    				//les donnees sous forme de tableau
    				$requete->execute(array(
    					'mail' => $mail, 
    					'mdp' => $mdp));
                			$userinfo = $requete->fetch();
     
     
     
                	?>
    				<div align="center">
                    			<h2>Profil de l'étancheur <?php echo $userinfo['prenom_nom'];?></h2>
    				<br/>
             			<br/>
    					Mail : <?php echo $userinfo['mail'];?>
    				<br/>
             			<br/>
    			<?php	
     
            			$buffer = "<table border=3>";
    				$sql = $bdd->query('SELECT `responsable`, chantier.`societe`,`adresse_toiture`,`nombre_capteur`,`adresse_bluetooth`,`nom_box`,`date_installation` FROM `chantier` JOIN etancheur ON chantier.societe = etancheur.societe');
    				$nb_champs = $sql->columnCount();
    				$buffer .= "<td>Responsable</td>";
    				$buffer .= "<td>Société d'étanchéité</td>";
    				$buffer .= "<td>Adresse toiture</td>";
    				$buffer .= "<td>Nombre capteur</td>";
    				$buffer .= "<td>Adresse bluetooth</td>";
    				$buffer .= "<td>Nom de la Box</td>";
    				$buffer .= "<td>Date d'installation</td>";
    					while($fetch = $sql->fetch()){
      	  					$buffer .= "<tr>";
      	  					for($i=0;$i<$nb_champs;$i++){
       	     					$buffer .= "<td>$fetch[$i]</td>";
        	     					}
      	  					$buffer .= "</tr>";
      	  				}
    					$buffer .= "</table>";
    					echo $buffer;
     
     
    			?>
     
    	<br/>
    	<br/>
    	<br/>
    	<br/>
    	<br/>
    	<br/>
    	<br/>
    	<br/>
    	<br/>
    	<br/>
    	<br/>
    	<br/>
    	<br/>
    	<br/>
    	<br/>
    	<br/>
    	<br/>
    	<br/>
    	<br/>
    	<br/>
    	<br/>
    	<br/>
    	<br/>
    	<br/>
     
             		<a href="deconnexion1.php">Se déconnecter</a>
     
         			</div>
       		</body>
    	</html>
    <?php
    }
    ?>
    Voilà mon soucis :
    Stéphanie travaille pour la société enerpur mais peur voir les chantiers de la société étanche.
    Nom : Capture d’écran 2020-03-06 à 16.04.34.png
Affichages : 529
Taille : 176,3 Ko

    J'espère que je suis assez claire, désolé je suis nouvelle en programmation et sur le forum.

    Merci d'avance.

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    salut,

    il manque un filtre WHERE dans ce bout de code : un truc du genre WHERE etancheur.id = :id_etancheur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = $bdd->query('SELECT `responsable`, chantier.`societe`,`adresse_toiture`,`nombre_capteur`,`adresse_bluetooth`,`nom_box`,`date_installation` FROM `chantier` JOIN etancheur ON chantier.societe = etancheur.societe');

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 21/08/2012, 23h13
  2. requête sql dans une page jsp
    Par Davesique dans le forum Servlets/JSP
    Réponses: 17
    Dernier message: 08/02/2011, 18h19
  3. un textfield dans une page web à l'aide d'une servlet
    Par amelA dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 14/05/2006, 18h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo