Probleme SQL

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Probleme SQL

Re: Probleme SQL

par zerodegre » 12 déc. 2011, 08:55

merci de l'info ;)

Re: Probleme SQL

par moogli » 10 déc. 2011, 01:40

Re: Probleme SQL

par zerodegre » 10 déc. 2011, 00:27

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

par zerodegre » 09 déc. 2011, 21:04

bon j'ai reussi a trouver je devais passer par $session login et non $session id

Re: Probleme SQL

par zerodegre » 09 déc. 2011, 16:29

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

par xTG » 09 déc. 2011, 14:18

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

par moogli » 09 déc. 2011, 14:01

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

par zerodegre » 09 déc. 2011, 13:13

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

par xTG » 09 déc. 2011, 11:47

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

par zerodegre » 09 déc. 2011, 09:23

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

par zerodegre » 09 déc. 2011, 08:40

merci je vais essayer ça

Re: Probleme SQL

par xTG » 09 déc. 2011, 08:08

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

par zerodegre » 09 déc. 2011, 01:21

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

par zerodegre » 08 déc. 2011, 23:39

Merci a vous je vais explorer ça

Re: Probleme SQL

par moogli » 08 déc. 2011, 12:53