Précédent   Forum du club des développeurs et IT Pro > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 29/12/2012, 15h51   #1
PHPulserz
Invité de passage
 
Homme
Inscription : 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 !
PHPulserz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2012, 16h12   #2
Exia93
Membre Expert
 
Homme
Étudiant
Inscription : avril 2012
Messages : 604
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2012
Messages : 604
Points : 1 055
Points : 1 055
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>';
Exia93 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2012, 16h19   #3
John Blobsmith
Membre habitué
 
Avatar de John Blobsmith
 
Inscription : avril 2004
Messages : 148
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 148
Points : 134
Points : 134
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...
John Blobsmith est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2012, 16h44   #4
PHPulserz
Invité de passage
 
Homme
Inscription : 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
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
PHPulserz est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 12h49.


 
 
 
 
Partenaires

Hébergement Web