Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 4 sur 4
  1. #1
    Invité de passage
    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 : 4
    Points
    4

    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 :
    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 Expert
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2012
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2012
    Messages : 730
    Points : 1 303
    Points
    1 303

    Par défaut

    Bonjour,

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

    Code :
    echo '<td>' . $donnees_c[mysql_field_name($rep_consult,$i)] . '</td>';
    au lieu de :
    Code :
    echo '<td>' . $donnees[mysql_field_name($rep_consult,$i)] . '</td>';

  3. #3
    Membre habitué Avatar de John Blobsmith
    Inscrit en
    avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : avril 2004
    Messages : 148
    Points : 136
    Points
    136

    Par défaut

    Hello,
    Si ta requête de consultation est :
    Code :
    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
    Invité de passage
    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 : 4
    Points
    4

    Par défaut

    Citation Envoyé par Exia93 Voir le message
    Bonjour,

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

    Code :
    echo '<td>' . $donnees_c[mysql_field_name($rep_consult,$i)] . '</td>';
    au lieu de :
    Code :
    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.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •