PB PHP : Récupération de données

Résolu/Fermé
Ladser Messages postés 9 Date d'inscription mardi 27 mars 2012 Statut Membre Dernière intervention 28 mars 2012 - 27 mars 2012 à 21:00
Ladser Messages postés 9 Date d'inscription mardi 27 mars 2012 Statut Membre Dernière intervention 28 mars 2012 - 27 mars 2012 à 23:28
Bonjour à tous,

Je sollicite votre aide sur un problème de récupération de données.
Je vais essayer de vous expliquer ce souci en étant le plus explicite possible.


Dans la page « index.php » :

1/ J'ai créé mes requêtes, j'ai déclaré mes variables, dont celle-ci :

$id = $row["id_user"];

(id_user correspond à l'id de ma table « user »)


2/ J'ai créé un lien avec une récupération de variable pour la page « contact.php »

<a href="contact.php?id='.$id.'">

-----------------------------------

Dans la page « contact.php » :

1/ J'ai créé mes requêtes, j'ai déclaré mes variables, dont celle-ci :

$id_var = $_GET["id"];

La variable « id_var » a pour but de récupérer la valeur de ma précédente variable se trouvant dans index.php, à savoir, « $id ». Cette valeur devrait changer en fonction des id de ma table « user ».


2/ Pour arriver au résultat voulu, je créer l'affichage ma variable comme suit :

<?php echo $id; ?>

Lorsque je passe de la page index.php à la page contact.php, via le lien que j'ai créé, je récupère bien l'id qu'il faut.



Problème :

Lorsque je souhaite afficher les autres données relatives à l'id, je n'y arrive pas. En fait, à chaque fois l'id change (plusieurs users, donc plusieurs id) mais les données restent celles de l'id=1.

Je souhaiterai pouvoir afficher les données relatives à chaque id. Comment faire ? Dois-je modifier ma requête SQL qui est du genre « SELECT x, x, x, FROM » en y ajoutant une condition ? Merci d'avance pour votre aide.
A voir également:

3 réponses

Ben normalment, si tu veux afficher les données relatives à chaque user à partir de l'id, la requête devrait ressembler à ceci :
$sql = "SELECT champ1,champ2,champn FROM user WHERE id='".$id."'";
0
Ladser Messages postés 9 Date d'inscription mardi 27 mars 2012 Statut Membre Dernière intervention 28 mars 2012
Modifié par Ladser le 27/03/2012 à 22:15
L'id de ma table "user" se nomme "id_user", ce qui donne :

$sql = "SELECT id_user, x, x, x, FROM user WHERE id_user='".$id."'";

Avec

$id = $row["id_user"];
(dans le fichier index.php)

J'ai essayé mais c'est toujours le même problème, l'id s'affiche bien mais les autres données non.

Une autre idée ?
0
>> Lorsque je passe de la page index.php à la page contact.php, via le lien que j'ai créé, je récupère bien l'id qu'il faut.
Donc dans la page contact.php, tu as l'id, donc tu fais la requête SELECT et tu affiches les données comme ceci par exemple :
echo $row['data1'] // et ainsi de suite pour chaque donnée à afficher
0
Ladser Messages postés 9 Date d'inscription mardi 27 mars 2012 Statut Membre Dernière intervention 28 mars 2012
Modifié par Ladser le 27/03/2012 à 23:29
Donc dans la page contact.php, tu as l'id, donc tu fais la requête SELECT et tu affiches les données comme ceci par exemple :
echo $row['data1'] // et ainsi de suite pour chaque donnée à afficher


J'ai essayé mais ça ne fonctionne pas, je mets le code de la page afin d'y voir plus clair, j'ai tellement bidouillé que je ne sais plus trop où modifier pour arriver au résultat voulu.


CONTACT.PHP

<?php    
...   
$req = mysql_db_query($sql_db,"SELECT id_user, nom_user, prenom_user, age_user FROM user")or die(mysql_error());   
$data = mysql_fetch_array($req);   

$id = $_GET["id"];   

$nom = $data["nom_user"];   
$prenom = $data["prenom_user"];   
$age = $data["age_user"];   
?>   

<html>   
<head>   
<link href="theme/style.css" rel="stylesheet" type="text/css" /></head>   

<body>   
<div><?php echo $id; ?></div>   
<div><?php echo $nom; ?></div>   
<div><?php echo $prenom; ?></div>   
<div><?php echo $age; ?></div>   
</body>   
</html>
0
dans la requête $req, il faut que tu la conditionne avec une clause WHERE id_user=$_GET['id'], sinon tu ne peux pas obtenir les données pour un user déterminé, c'est pourtant simple non?!?
d'autre part, à quoi sert de faire :
$nom = $data["nom_user"];
$prenom = $data["prenom_user"];
$age = $data["age_user"];

Alors que tu pourrais faire directement :
<div><?php echo $data["id_user"]; ?></div>
<div><?php echo $data["nom_user"]; ?></div>
<div><?php echo$data["prenom_user"]; ?></div>
<div><?php echo $data["age_user"]; ?></div>
0
Ladser Messages postés 9 Date d'inscription mardi 27 mars 2012 Statut Membre Dernière intervention 28 mars 2012
27 mars 2012 à 23:28
J'ai essayé en ajoutant à ma requête la condition :
WHERE id_user=$_GET['id']

Mais ça ne fonctionnait pas... Par contre, grâce à ça, j'ai compris où se trouvait mon erreur :
$id = $_GET["id"]; 
$req = mysql_db_query($sql_db,"SELECT id_user, nom_user, prenom_user, age_user FROM user WHERE id_user=$id")or die(mysql_error()); 
$data = mysql_fetch_array($req); 


Il faut que
$id = $_GET["id"]; 
se trouve avant la requête "$req" sinon forcément, ça merde...

Merci pour ton aide ReDLoG !
0