Voir information d'un membre !

Résolu
cs_anxel Messages postés 35 Date d'inscription vendredi 16 janvier 2004 Statut Membre Dernière intervention 3 décembre 2005 - 28 oct. 2005 à 19:08
cs_anxel Messages postés 35 Date d'inscription vendredi 16 janvier 2004 Statut Membre Dernière intervention 3 décembre 2005 - 4 nov. 2005 à 17:00
Bonjour, j'ai une question assez simple, mais je ne sais pas trop comment faire mon code...

Bon, cette question est:
- Comment je fais pour que quand quelqu'un clique sur le nom d'un membre dans la liste des membres et bien que les informations de cette personne soit affichée sur une autre page... J'ai de la misère à aller chercher les informations de la personne dedans la base de donnée !

Merci d'avance !

AnXeL
Aurevoir

26 réponses

monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
30 oct. 2005 à 08:28
Une remarque pour commencer :


[index.php?wow= '.$data['id'].' '.$data['login'].']

le method="post" qui n'a rien a foutre là :) car c'est un attribut d'une balise <form>



Ton problème se situe essentiellement là :

elseif ($wow == $data['id'])



En effet, lorsque ton script arrive à cette ligne, il ne sait pas du tout ce qu'est $data, puisque cette variable est définie dans l'argument de ta boucle while de MembersList.php.



Là il faut raisonner en se posant les bonnes questions :

Question : Qu'est-ce que tu souhaites?

Réponse : Je souhiates afficher la fiche correspondant à un membre en cliquant sur un lien

Question : Comment tu veux t'y prendre?

Réponse : Je veux inclure le fichier 'fiche.php' lorsque le lien est cliqué et afficher les information correspondant à l'id du membre correspondant au lien cliqué



Rien qu'en se posant deux questions, on se rend compte qu'il ne suffit pas d'envoyer une information dans ton url, mais deux :

1 - pour dire a ton script d'inclure fiche.php

2 - pour dire a ton script quel id tu compte afficher



Si on respect la structure de ton script, il semblerait que la variable $wow serve à dire a ton script quel fichier inclure (news.php, connexion.php, inscription.php, etc...)



Donc si on applique ton raisonnement, il faut lui dire d'inclure fiche.php, ce qui donne :

[index.php?wow =fiche '.$data['login'].']



Mais là tu te rend compte que fiche.php ne saura pas quels informations
afficher. Il te suffit alors de rajouter une variable de cette façon :

[index.php?wow=fiche&id='.$data['id'].' '.$data['login'].']



De cette sorte, nos deux informations sont envoyées sous la forme htttp://...../index.php?wow=fiche&id=5 par exemple



Il faut alors changer la ligne :

elseif ($wow == $data['id'])

{

include('fiche.php');

}

en :

elseif ($wow == 'fiche')
{
include('fiche.php');
}




<hr size="2" width="100%">Pour afficher les informations concernant un membre en fonction de $_GET['id']

Il te suffit de faire une requête ressemblant à celle du fichier MembresList.php mais en y rajoutant une clause pour ne récupérer que les résultats qui respect cette clause



$query 'SELECT `nom`, `prenom`, `age`, `sexe`, `ville`, `province`, `pays`, `login`, `email` FROM membres WHERE id '.$_GET['id'] ;



Remarque : comme il ne peux y avoir deux
id identiques dans ta table, cette requête ne renverra qu'une ligne,
donc il ne sera pas utile de récupérer les informations via une boucle while



puis d'envoyer cette requête :

$result = mysql_query($query) or die(mysql_error());



et d'en afficher le resultat :

$data = mysql_fetch_array($result);



Qui seront dans le tableau associatif $data.

Par exemple pour afficher le nom tu utiliseras la variable $data['nom']
3
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
28 oct. 2005 à 19:18
Salut,



regarde l'url de ton post : http://www.phpcs.com/forum.v2.aspx?ID=589705



De même, quand tu regarde vers quoi menne le lien dans ton pseudo : http://www.phpcs.com/auteurdetail.aspx?ID=217781





Il faut que tu fasse pareil !

Tu créer un lien vers un page affichant les info de ton utilisateur :

[detailUser.php?id=65431 nomUser]



target="_BLANK" veut dire "dans une nouvelle page"

_TOP => dans la page parente

_SELF => dans la même page (par défaut)

...





Ensuite, dans ton script detailUser.php,

tu récupère ainsi l'identifiant de l'utilisateur :



<?php

if( ! isset($_GET['id']) ) die("Pas d'identifiant !?!");

$id = $_GET['id'];

if( ! is_numeric($id) ) die("C'est quoi cet id ?\n$id");



// et après attaque de la BDD avec $id

// puis affichage...

?>
0
cs_anxel Messages postés 35 Date d'inscription vendredi 16 janvier 2004 Statut Membre Dernière intervention 3 décembre 2005
28 oct. 2005 à 20:05
J'ai un peu de misère avec ton aide !!! Parce que j'ai déja ma base de fait la avec les page...
Ex: index.php?wow=membres
et quand je clique sa doit marquer...
Ex: index.php?wow=(Le id de la personne ou bien son nom de login ou tout simplement wow=fiche)
Et dans sa:

<?php
if(isset($_GET["wow"])) $wow = $_GET["wow"];
else $wow = "";
[...]
ICI
?>

Je dois marquer:

elseif ($wow == ''.$data['id'].'')
{
include('fiche.php');
}

Ou je dois marquer autre chose que cela... parce que je sais que sa ne marche pas avec ''.$data['id'].''
Sa me marque une erreur !

Donc que dois-je faire ???

AnXeL
Aurevoir
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
28 oct. 2005 à 20:17
$wow == ''.$data['id'].''





je comprends pas le ''. et le .'' ???

Y'en a pas besoin !

$wow == $data['id']





reprennons avec un exemple d'école :

<?php


if(isset($_GET["wow"])) $wow = $_GET["wow"];


else $wow = "";




$bdd = // connection à la BDD




$res = mysql_query("SELECT * FROM user WHERE wow=$wow");


if( mysql_num_rows( $res ) <= 0 ) die("pas de résultat");


$data = msql_fetch_assoc($res);




/*


puis tu affcihe la fiche de ton utilisateur selon les données contenues dans $data... exemple :


*/


?>




Nom : <?php echo $data['nom']?>



Prenom : <?php echo $data['prenom']?>



<!-- et ainsi de suite, en formatant ta page pour que ce soit joli... -->





Est-ce que ça va mieux ???
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_anxel Messages postés 35 Date d'inscription vendredi 16 janvier 2004 Statut Membre Dernière intervention 3 décembre 2005
28 oct. 2005 à 20:33
Désolé, mais sa ne marche pas plus... C'est sa mon problème !!! :s
J'ai vraiment trop de misère... Grrrr !

Pourtant ma base est bien fait, du moins je crois. La c'est juste qu'il ne veut pas aller chercher l'information du id...
Et ce que tu ma inscrit ne marche pas plus, sa me marque une erreur avec ceci:
$res = mysql_query("SELECT * FROM user WHERE wow=$wow");
>>>>>> if( mysql_num_rows( $res ) <= 0 ) die("pas de résultat"); <<<<<<
$data = msql_fetch_assoc($res);

Et bien si tu trouve, je t'en remercie !!!

AnXeL
Aurevoir
0
cs_anxel Messages postés 35 Date d'inscription vendredi 16 janvier 2004 Statut Membre Dernière intervention 3 décembre 2005
28 oct. 2005 à 20:34
Et puis, il n'y aurait pas un tuto pour ça !?
On ne sais jamais...

Merci d'avance !

AnXeL
Aurevoir
0
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
28 oct. 2005 à 21:40
Affiche la structure de ta base anxel
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
28 oct. 2005 à 22:14
Salut,



évite d'utiliser le target="_blank" pour mettre ça dans une nouvelle fenêtre, laisse le choix au visiteur de le faire ;-)



sinon pour ce qui est des infos :



en gros lorsque t'as un lien : afficher_profil.php?id=545485



par exemple



bah sur ta page php tu fais ceci :



<?php

if(isset($_GET['id']) AND is_numeric($_GET['id']))

{

mysql_connect('hote','user','passe');

mysql_select_db('base');

$r=mysql_query('SELECT nom,prenom FROM table WHERE id_membre='.$_GET['id']);

mysql_close();



$r=mysql_fetch_row($r);



echo $r[0],'
',$r[1]; //etc...

}

?>

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
0
cs_anxel Messages postés 35 Date d'inscription vendredi 16 janvier 2004 Statut Membre Dernière intervention 3 décembre 2005
29 oct. 2005 à 01:49
.... Mais quoi vous voulez que j'affiche !!!

Code-source:

Page centre.php
<?php
// On récupère la rubrique passée en paramètre
if(isset($_GET["wow"])) $wow = $_GET["wow"];
else $wow = "";


if ($wow == 'accueil')
{
include('accueil.php');
}
elseif ($wow == 'news')
{
include('news.php');
}
elseif ($wow == 'connexion')
{
include('connexion.php');
}
elseif ($wow == 'inscription')
{
include('inscription.php');
}
elseif ($wow == 'membres')
{
include('membres.php');
}
elseif ($wow == $data['id'])
{
include('fiche.php');
}
else
{
// page par défaut
include('accueil.php');
}
?>

Page MembersList.php
<?php
// on se connecte à MySQL
$db = mysql_connect('localhost', 'root', '');


// on sélectionne la base
mysql_select_db('wow',$db);


// on crée la requête SQL
$sql = 'SELECT * FROM membres ORDER BY login';


// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());


// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req))
{
// on affiche les informations de l'enregistrement en cours
echo '<tr>
<td bgcolor="#805F4A">
[index.php?wow='.$data['id'].' '.$data['login'].']
</td>
<td bgcolor="#805F4A">
'.$data['age'].'
</td>
<td bgcolor="#805F4A">
'.$data['sexe'].'
</td>
<td bgcolor="#805F4A">
'.$data['ville'].'
</td>
</tr>';
}


// on ferme la connexion à mysql
mysql_close();
?>

Page Fiche.php
En construction... Un fois que tout marche je vais la commencer.... J'ai juste une chose d'inscrit pour savoir si le php marche ou non... Donc sa sert a rien de l'afficher !!! Mais ça va être...
Ex: Fiche du joueur: (Login)
Nom: (nom)
Prenom: (prenom)
Etc....

AnXeL
Aurevoir
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
29 oct. 2005 à 03:18
elseif ($wow == $data['id'])



Mais comment tu veux que ça marche ça !!!!





$wow = id ???





Ca veut dire que tu fais une requette sur centre.php?135=135

Complètement fou...



Tu mélanges les info !

fait le comme ça :

centre.php?wow=membres&id=135





wow => sert à spécifier une page à afficher, dans ce cas la page des membres

id => de quel membre il s'agit





et puis, d'où vient le $data['id'] dans ton script centre.php???



bonne nuit
0
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
29 oct. 2005 à 07:06
Ce que je voulais que tu affiche est la structure de ta table membres,
c'est-à-dire la liste de ses champs, avec leur type, les champs
indexés, etc...



Tu peux faire ça dans phpmyadmin, tu sélectionnes ta table, tu vas dans
"Exporter", et tu coches "afficher la structure seule" ou tu décoches
"Données" (ça dépend de ta version de phpmyadmin), tu cliques sur
"Executer" et tu devrais avoir un truc du style :



CREATE TABLE membre (

....

);



Ah! aussi il ne faut pas que "Transmettre" soit cocher, ça sera plus simple
0
cs_anxel Messages postés 35 Date d'inscription vendredi 16 janvier 2004 Statut Membre Dernière intervention 3 décembre 2005
30 oct. 2005 à 02:16
Tien !!!

CREATE TABLE `membres` (
`id` int(11) NOT NULL auto_increment,
`nom` varchar(30) NOT NULL default '',
`prenom` varchar(30) NOT NULL default '',
`age` varchar(50) NOT NULL default '',
`sexe` varchar(5) NOT NULL default '',
`ville` varchar(100) NOT NULL default '',
`province` varchar(100) NOT NULL default '',
`pays` varchar(100) NOT NULL default '',
`login` varchar(12) NOT NULL default '',
`pass` varchar(12) NOT NULL default '',
`email` varchar(100) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;

AnXeL
Aurevoir
0
cs_anxel Messages postés 35 Date d'inscription vendredi 16 janvier 2004 Statut Membre Dernière intervention 3 décembre 2005
30 oct. 2005 à 02:21
Eh 565117 J_G !!!
Qu'en ta mon chose dont tu dis que sa se peut pas la... ça marche la...
Sa me marque cela:
=8 http://xtrema.mine.nu/Wow/index.php?wow=8
Mais sa me ramenne a ma page du début ma page quand il ne trouve pas de page pour celle-ci !
Pis pour ma page de fiche... Je ne sais trop comment afficher les informations... J'avais oblier de le spécifier !!! :s
Pis je ne comprend pas ce que tu dit en plus désoler... Tu n'explique pas assez c'est assez vague comme informations !

Ex: centre.php?wow=membres&id=135

Juste sa c'est pas assez...Puisque que je ne sais pas ou je dois faire mon codage php !!! Donc...

AnXeL
Aurevoir
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
1 nov. 2005 à 12:38
Bravo pour ton courage monoceros...



Mais la ligne

$wow == $data['id']

marche à la prefection, il me l'a dit :)



Maitenant qu'on sait que cette ligne ne renvoi pas d'erreur, il ne reste plus qu'a comprendre à quoi elle sert ;)







anxel =>

Suit bien attentivement les explications de monoceros
0
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
1 nov. 2005 à 12:58
Elle ne renvois pas d'erreur parce qu'il n'as pas configurer son paramètre error_reporting à E_ALL dans son php.ini.

Auquel cas il y aurait quelque chose comme :

Notice: Undefined variable: data in /path/centre.php on line 25
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
1 nov. 2005 à 13:19
A mais complètement d'accord !!!



Chose qui m'étonne d'ailleur car,
génralement, les serveur PHP sont configurés avec E_ALL par défaut.
0
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
1 nov. 2005 à 13:24
Hum! Easyphp a cette configuration par défaut oui. Mais il est possible
qu'il test ses script sur un serveur free par exemple qui ne met pas de
E_ALL.
0
cs_anxel Messages postés 35 Date d'inscription vendredi 16 janvier 2004 Statut Membre Dernière intervention 3 décembre 2005
3 nov. 2005 à 02:30
199699 monoceros01 merci énormément ça marche à la merveille !!!

Donc tout marche A1... Il va chercher les informations nécessaires, c'est comme je le souhaitais...
Explication simple et courte... Je vais savoir pour la prochaine fois et m'a pouvoir aider si quelqu'un veux faire comme moi un jour !!!

Merci encore de votre aide !!!
=199699 monoceros01, J_G

AnXeL
Aurevoir
0
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
3 nov. 2005 à 03:51
de rien o_o
0
cs_anxel Messages postés 35 Date d'inscription vendredi 16 janvier 2004 Statut Membre Dernière intervention 3 décembre 2005
3 nov. 2005 à 23:16
Désolé, mais j'ai encore un problème... Quand je clique sur les infos d'une autre personne sa me montre tjs les infos de la premiere personne qui sest inscrit !!!! Pourquoi ?

AnXeL
Aurevoir
0
Rejoignez-nous