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 :

Plusieurs requêtes sur la même page [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 11
    Points : 9
    Points
    9
    Par défaut Plusieurs requêtes sur la même page
    Bonjour à tous, en recherchant sur internet, je n'ai pas trouvé de solution à mon problème donc je viens ici en espérant trouver une réponse

    J'ai une page avec un formulaire de connexion, je rentre le login et le mot de passe, j'arrive sur l'autre page et j'ai une requête qui vérifie si l'utilisateur est bien dans la base de donnée, jusque là aucun problème. Après vérification, l'utilisateur est connecté à la page. Celui-ci voudrait consulter tous les utilisateurs dans la base de donnée avec une 2ème requêtes (imaginons que c'est l'Admin bien sur ) ça ne fonctionne pas. Il va m'afficher autant de fois mes informations qu'il y a d'utilisateurs dans ma table "Users"

    Voici un petit exemple:


    Mon code:
    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
    <html>
    <head>
    	<link rel="stylesheet" href="reset.css"/>
    	<link rel="stylesheet" href="myStyle.css"/>
    	<title>Connexion.php </title>
    </head>
    <body>
    	<center>
    		<div id="enonce"> .:Test de la dataProject pour le Projet:. </div>
    		<div id="sous-enonce"> Ajouter, modifier et consulter données dans la DB </div>
    	</center>
    	<?php
    		session_start(); // Ouverture de la session	
    		// Initialisation de la session
    		if(!isset($_SESSION['login'])) { 
    			$_SESSION["login"] = $_POST["login"];
    			$_SESSION["mdp"] = $_POST["mdp"];
    		}
    		// On empeche toute injection SQL	 
    		inject_stop();
    		include ("config.php"); 
    		mysql_connect(MYHOST, MYUSER, MYPASS) or die(mysql_error()); // Connexion à MySQL
    		mysql_select_db("dataproject") or die(mysql_error()); // Sélection de la base coursphp
    		$sql="SELECT * FROM USERS WHERE PSEUDO= '" . $_SESSION["login"] . "' AND COOKIE= '" . crypt($_SESSION["mdp"],99) . "'";
    		$reponse = mysql_query($sql) or die(mysql_error()); // Requête SQL
    		echo '<br /><br />';
    		echo '<div class="commentaire">WHERE NOM = "' . $_SESSION["login"] . '" and MDP = "' . $_SESSION["mdp"] . '"</div>'; 
    		// Si on trouve le USER dans la BDD
    		if ($donnees = mysql_fetch_array($reponse)) {
    			echo '<div class="resultat">Résultats trouvés pour : <strong>' . $_SESSION["login"] . '</strong><br />';
    			echo '<a href="deconnexion.php">Deconnexion</a></div>';
    			echo '<div class="tableau"><form method="post" action="'.$_SERVER['PHP_SELF'].'">
    					<input name="choix" class="button" type="submit" value="Consulter" />
    					<input name="choix" class="button" type="submit" value="Ajouter" />
    					<input name="choix" class="button" type="submit" value="Modifier" />
    				 </form></div>';
    			// On test le choix 
    			if(!empty($_POST["choix"])){
    				switch($_POST["choix"])
    				{
    				case "Consulter":
    					$rep_consult = mysql_query("SELECT * FROM USERS") or die(mysql_error()); // Requête SQL
    					echo '<br /><br />'; // x espace 
    					// Ouverture du tableau
    					echo '<table>
    							<th colspan="11"> Table des USERS </th>
    							<tr class="ligne">';	 
    					$i = 0;
    					while($i < mysql_num_fields($rep_consult)){
    						echo '<td>' . mysql_field_name($rep_consult,$i) . '</td>';
    						$i++;
    					}
    					echo '</tr>';
    					while ($donnees_c = mysql_fetch_array($rep_consult) )
    					{
    						echo '<tr>';
    						$i = 0;
    						while($i < mysql_num_fields($rep_consult))
    						{
    							echo '<td>' . $donnees[mysql_field_name($rep_consult,$i)] . '</td>';
    							$i++;
    						}
    						echo '</tr>'; 
    					}
    					// Fermeture du tableau
    					echo '</table>';
    					break;
    				}
    			}
    		}
    		else {
    			echo '<div class="resultat">Acces Inderdit : <strong>' . $_SESSION["login"] . '</strong><br />';
    			echo '<a href="deconnexion.php">Réessayer</a></div>';
    		}
    		// Fonction qui empeche toute injection dans le code PHP
    		function inject_stop(){
    			foreach($_POST as $k => $v) { $_POST[$k] = mysql_real_escape_string($v); }
    			foreach($_GET as $k => $v) { $_GET[$k] = mysql_real_escape_string($v); }
    		}
     
    		mysql_close(); // Déconnexion de MySQL	
    	?>
    </body>
    </html>
    Je suppose que le problème vient de la double requête sur ma page, comment résoudre ce problème? Merci d'avance !

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Points : 1 631
    Points
    1 631
    Par défaut
    Bonjour,

    pour la ligne 60 sa ne serrait pas plutôt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<td>' . $donnees_c[mysql_field_name($rep_consult,$i)] . '</td>';
    au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<td>' . $donnees[mysql_field_name($rep_consult,$i)] . '</td>';
    une réponse vous a permis d'avancer ?

  3. #3
    Membre actif Avatar de John Blobsmith
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 198
    Points : 223
    Points
    223
    Par défaut
    Hello,
    Si ta requête de consultation est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    case "Consulter":
    					$rep_consult = mysql_query("SELECT * FROM USERS") or die(mysql_error()); // Requête SQL
    alors c'est normal que tu ais les infos de tous les utilisateurs...

    Au faite.... en php aussi on a des classes, des moteurs de template et des framework...

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par Exia93 Voir le message
    Bonjour,

    pour la ligne 60 sa ne serrait pas plutôt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<td>' . $donnees_c[mysql_field_name($rep_consult,$i)] . '</td>';
    au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<td>' . $donnees[mysql_field_name($rep_consult,$i)] . '</td>';
    punaise... c'est ça ! merci

    @John Blobsmith: le problème n'étant pas là. Il m'affichait 3 fois la même information, mais bon, c'est résolu, encore une petite erreur d’inattention. Merci pour la réponse très rapide

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 20/04/2012, 16h57
  2. [JpGraph] Plusieurs graphes sur une même page
    Par Dam1en dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 28/12/2007, 23h13
  3. [AJAX] Plusieurs autocomplétion sur la même page
    Par Death83 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 20/11/2007, 11h19
  4. Réponses: 2
    Dernier message: 18/07/2007, 08h38
  5. [C#][SVG] Combinaison de plusieurs graphe sur une même page
    Par doudoustephane dans le forum ASP.NET
    Réponses: 2
    Dernier message: 22/11/2006, 09h19

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