Page 1 sur 2
Probleme SQL
Posté : 08 déc. 2011, 12:30
par zerodegre
Bonjour
Je suis en train de travailler sur un espace membre mais je n'arrive pas a recuperer les information depuis ma BDD SQL de phpmyadmin.
Donc ma table est nommé ==> MEMBRE
Mon champ est nommé ==> TESTE
donc voici le fichier MEMBRE.PHP que je voudrais utiliser je voudrais recuperer dans la value du champ de formulaire plus bas l'info dans ma base SQL
Code : Tout sélectionner
<?php
session_start();
if (!isset($_SESSION['login'])) {
header ('Location: index.php');
exit();
}
?>
<html>
<head>
<title>Espace membre</title>
</head>
<body><center>
Bienvenue <?php echo htmlentities(trim($_SESSION['login'])); ?> !<br />
<br />
<br />
<br />
<tr>
<td><input size="50" name="screen" value="?????????? ICI ??????????????" type="text"></td>
</tr>
</tbody></table>
<a href="deconnexion.php">Déconnexion</a></center>
</body>
</html>
comment dois je proceder ?
Re: Probleme SQL
Posté : 08 déc. 2011, 12:53
par moogli
Re: Probleme SQL
Posté : 08 déc. 2011, 23:39
par zerodegre
Merci a vous je vais explorer ça
Re: Probleme SQL
Posté : 09 déc. 2011, 01:21
par zerodegre
bon voila j'ai reussi mais j'ai un probleme que je n'ai pas reussi a trouver
j'ai monter ça comme ça
Code : Tout sélectionner
<?php
session_start();
if (!isset($_SESSION['login'])) {
header ('Location: index.php');
exit();
}
?>
<?php
// on se connecte à notre base
$base = mysql_connect ('localhost', 'login', 'mot de passe');
mysql_select_db ('ma base', $base) ;
?>
<?php
// lancement de la requete
$sql = 'SELECT teste1, teste2 , teste3, teste4 FROM membre';
// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
// on recupere le resultat sous forme d'un tableau
$data = mysql_fetch_array($req);
// on libère l'espace mémoire alloué pour cette interrogation de la base
mysql_free_result ($req);
mysql_close ();
?>
donc la ça marche marche mais le probleme est que si je me connecte sur mon pseudo j'ai les valeurs du champ et si je relance une insription sous un autre pseudo dans la base de donnée les champ teste1 teste2 teste3 teste 4 sont vide jusque la normal mais lorsque je me connecte sur le pseudo de la nouvelle inscription il prend les valeurs du premier inscrit
comment faire pour relier les valeurs a chaque pseudo de session
Re: Probleme SQL
Posté : 09 déc. 2011, 08:08
par xTG
On enregistre en session lors de la connexion un élément qui identifie l'utilisateur de façon unique, généralement la clé primaire de la table membre.
Ensuite dans les requêtes rapatriant des informations concernant le membre on ajoute en clause WHERE cette clé comme condition de récupération.
Exemple :
$sql = "SELECT pseudo, email, avatar
FROM membre
WHERE id = " . mysql_real_escape_string($_SESSION['id']);
N.B : la fonction mysql_real_escape_string() permet de protéger les variables que tu utilises dans une requête.
Re: Probleme SQL
Posté : 09 déc. 2011, 08:40
par zerodegre
merci je vais essayer ça
Re: Probleme SQL
Posté : 09 déc. 2011, 09:23
par zerodegre
bon j'ai essayer ça ci dessous par rapport a la reponse ci dessus mais probleme je ne recupere pas du tout le contenu du champ TESTE
Code : Tout sélectionner
<?php
// lancement de la requete
$sql = 'SELECT teste FROM membre WHERE id="'.mysql_escape_string($_SESSION['id']).'"';
// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
// on recupere le resultat sous forme d'un tableau
$data = mysql_fetch_array($req);
// on libère l'espace mémoire alloué pour cette interrogation de la base
mysql_free_result ($req);
mysql_close ();
?>
Re: Probleme SQL
Posté : 09 déc. 2011, 11:47
par xTG
Ta table contient bien le n-uplet : ($_SESSION['id'], "un message teste") ?
Vérifies la valeur de $_SESSION['id'] que tu retrouves dans le code et celle enregistrée dans ta table.
Comment réutilises-tu $data ?
Re: Probleme SQL
Posté : 09 déc. 2011, 13:13
par zerodegre
pour info des que je retire =>WHERE id="'.mysql_escape_string($_SESSION['id']).'"'
la je recupere bien la valeur du champ mais toujour sur l'ID 1 meme si je me connecte sur le compte ID:3 ou 2
Pour le champ id voila requete SQL :
SELECT *
FROM `membre`
ORDER BY `membre`.`id` ASC
LIMIT 0 , 30
je recupere le $data
<tr>
<td><input name="screen" value="<?php echo $data['teste']; ?>" size="50" type="text" ></td>
</tr>
Re: Probleme SQL
Posté : 09 déc. 2011, 14:01
par moogli
Fait voir le code vérification du formulaire.
Et un desc membre (à utiliser dans un fenêtre Sql de phpmyadmin copie / colle le résultat ici)
Plutôt que d'utiliser la balise code. Peux tu utiliser la balise
pour avoir la colorisation du code ? ;)
@+
Re: Probleme SQL
Posté : 09 déc. 2011, 14:18
par xTG
pour info des que je retire =>WHERE id="'.mysql_escape_string($_SESSION['id']).'"'
la je recupere bien la valeur du champ mais toujour sur l'ID 1 meme si je me connecte sur le compte ID:3 ou 2
Une requête SQL sans clause WHERE équivaut à récupérer TOUT le contenu de la table.
Donc tu n'as pas d'informations relatives aux comptes d'id 2 et 3 tout simplement.
Essaies avec le compte d'id 1 et tu devrais récupérer quelque chose.
Re: Probleme SQL
Posté : 09 déc. 2011, 16:29
par zerodegre
oui en effet je recupere les infos du champ sur ID1 mais des que je passe sur un autre login exemple ID 2 je recupere les infos toujours de l'ID1
Re: Probleme SQL
Posté : 09 déc. 2011, 21:04
par zerodegre
bon j'ai reussi a trouver je devais passer par $session login et non $session id
Re: Probleme SQL
Posté : 10 déc. 2011, 00:27
par zerodegre
j'ai explorer maintenant la commande servant a mettre les champs a jour en utilisant la requete UPDATE mais je sais pas trop comment placer ça
comment dois je aussi placer la requete UPDATE ??? si exemple je modifie un des champ pour envoyer en MAJ sur la base de donnée
Voici le contenu de ma page MEMBRE.PHP
Code : Tout sélectionner
<?php
session_start();
if (!isset($_SESSION['login'])) {
header ('Location: index.php');
exit();
}
?>
<?php
// on se connecte à notre base
$base = mysql_connect ('localhost', 'login', 'pass');
mysql_select_db ('ma base', $base) ;
?>
<?php
// lancement de la requete
$sql = 'SELECT teste1, teste2, teste3, teste4 FROM membre WHERE login="'.mysql_escape_string($_SESSION['login']).'"';
// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
// on recupere le resultat sous forme d'un tableau
$data = mysql_fetch_array($req);
// on libère l'espace mémoire alloué pour cette interrogation de la base
mysql_free_result ($req);
mysql_close ();
?>
<html>
<head>
<title>Espace membre</title>
</head>
<body><center>
Bienvenue <?php echo htmlentities(trim($_SESSION['login'])); ?> !<br />
<br />
<br />
<br />
<form action="membre.php" method="post">
<table>
<tr>
<td><input name="teste1" value="<?php echo $data['teste1']; ?>" size="50" type="text" ></td>
</tr>
<tr>
<td><input name="teste2" value="<?php echo $data['teste2']; ?>" size="50" type="text" ></td>
</tr>
<tr>
<td><input name="teste3" value="<?php echo $data['teste3']; ?>" size="50" type="text" ></td>
</tr>
<tr>
<td><input name="teste4" value="<?php echo $data['teste4']; ?>" size="50" type="text" ></td>
</tr>
</tbody></table>
</form>
<a href="deconnexion.php">Déconnexion</a></center>
</body>
</html>
Re: Probleme SQL
Posté : 10 déc. 2011, 01:40
par moogli