PHP : petit probleme avec liste des membres

Résolu/Fermé
o0leo0o - 22 nov. 2009 à 15:37
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 - 6 déc. 2009 à 15:04
Bonjour,

J'ai quelques problemes en PHP :
• J'aimerai afficher une page , avec des liens genre ça : http://niarniark.pada.com/liste_membres.php?membre=1
Mais mon code , n'affiche pas ce que je voulais ...
Sur toutes les pages ( membre=1 , membre=302 ) , il me mets le nom du dernier membre enregistré , au lieu de mettre un nom different sur chaque page ...

voila le code php :


<?php
mysql_connect("localhost ici sa marche :-P
mysql_select_db("dbase17780");





// --------------- Etape 1 -----------------
// On écrit les liens vers chacune des pages
// -----------------------------------------

// On met dans une variable le nombre de joueurs qu'on veut par page
$nombreDeMessagesParPage = 1; // Essayez de changer ce nombre pour voir :o)
// On récupère le nombre total de messages
$retour = mysql_query('SELECT COUNT(*) AS id FROM membres_jeu');
$donnees = mysql_fetch_array($retour);
$totalDesMessages = $donnees['id'];
// On calcule le nombre de pages à créer
$nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);
// Puis on fait une boucle pour écrire les liens vers chacune des pages
echo 'Page : ';
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
echo '<a href="game.php?joueur=' . $i . '">' . $i . '</a> ';

}

?>
<?php


// --------------- Etape 2 ---------------
// Maintenant, on va afficher les joueurs
// ---------------------------------------

if (isset($_GET['login']))
{
$page = $_GET['login']; // On récupère le numéro de la page indiqué dans l'adresse (livreor.php?page=4)
}
else // La variable n'existe pas, c'est la première fois qu'on charge la page
{
$page = 1; // On se met sur la page 1 (par défaut)
}

// On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;

$reponse = mysql_query('SELECT * FROM membres_jeu ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);

while ($donnees = mysql_fetch_array($reponse))
{

echo '<p><strong>' . $donnees['login'] . '</strong> a cette adresse e-mail :<br />' . $donnees['mail'] . '</p>'; }

mysql_close(); // On n'oublie pas de fermer la connexion à MySQL ;o)

?>



Quelqu'un peu m'aider ?
je sais que j'ai fait une erreur quelque parts mais je sais pas comment l'arranger ...

Désolé de vous déranger pour si peux ...


A bientot ,
Leo
A voir également:

46 réponses

avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
25 nov. 2009 à 13:44
“J'aimerai afficher une page , avec des liens genre ça http://example.com/liste_membres.php?membre=1”
Je penses que "?page=1" donnerait mieux.

Par contre, je ne comprends pas ça :
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
echo '<a href="game.php?joueur=' . $i . '">' . $i . '</a> ';

}
Pourquoi fais-tu un lien vers une autre page ? Essaye plutôt avec ça :
for ($i = 1 ; $i <= $nombreDePages ; $i++) {
    echo '<a href="liste_membre.php?page=' . $i . '">' . $i . '</a> ';
}

Après tu m'expliquera ça :
if (isset($_GET['login']))
{
$page = $_GET['login']; // On récupère le numéro de la page indiqué dans l'adresse (livreor.php?page=4) 
Sur la liste des membres, ne vois pas pourquoi nous aurions besoin du login d'un membre ! Remplace par $_GET['page'].

Bases-toi sur ce tuto
1
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
25 nov. 2009 à 14:23
Il suffit d'écrire le lien comme ça : <a href="game.php?membre=1">o0leo0o</a>
Ensuite, tu auras une variable $_GET['membre'] dans game.php avec 1 comme valeur
1
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
5 déc. 2009 à 17:51
Le requête SQL que tu cherches est l'une des plus simple.

Si tu met cette requête:
$sql='SELECT * FROM table WHERE id="'.$_GET['membre'].'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);

Tu n'aura plus qu'a afficher les résultats en mettant cette variable:
$data['champ']

Exemple:
Si ton premier champ dans ta table est id puis login, tu pourra afficher le login du membre avec:
echo $data['login'];


Dans ce cas, ton lien http://niarniark.pada.com/liste_membres.php?membre=1 fonctionnera.

Mais bon c'est quand même les bases.
ça sert à rien de se lancer dans un script compliqué si tu connais pas les bases.
1
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
5 déc. 2009 à 20:02
Tu veux afficher une liste de membre ou la fiche d'un membre ?

Tu parlais tout a l'heure d'un lien liste_membres.php?membre=1
Si tu places membre=1 dans l'url c'est pour affiche la fiche d'un membre que tu définis dans l'url avec l'id 1 qui renverra à ta base de donnée.

Donc:
- soit tu affiches la liste des membres (dans ce cas pas de variable dans l'url la page sera simplement list_membre.php)
- soit tu affiches la fiche d'un membre précis (dans ce cas tu défini le membre que tu affichera via une variable dans l'url).

En fait le plus simple est de combiner les deux.
Tu fais une page list_membre.php et pour chaque membre tu affiches un lien qui renvoi sur la page fiche.php?id=1 par exemple.

Ce que tu me met:
Page : 1 2 3 4 5 6 7
(si je comprends bien) est un système permettant de répartir ta liste de membre sur plusieurs page gérer dynamiquement.
Essai de faire simple dans l'immédiat. Tu n'y arrive déjà que difficilement pour ce qui est uniquement les bases du PHP donc évite pour le moment d'employer des script trop complexe que tu ne pourra pas gérer toute seul. Tu pourra ensuite les intégrer.
1

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

Posez votre question
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
5 déc. 2009 à 21:08
Je te l'ai déjà expliqué ...

Fait des liens du style "/profil.php?membre=3" où "3" est l'ID du membre dans la table.
Ensuite, utilise la variable $_GET['membre'] pour faire une requête dans la bdd pour récupérer toutes les infos sur le membre.
1
Je suis désolé si un sujet pareil avait déjà été créé , cependant je ne l'ai pas trouvé ...
0
Et voici ce que me mets la page avec ce code la :
http://img130.imageshack.us/img130/8946/screenshot021r.jpg
0
Up !
0
Quelqu'un pourrais m'aider ??? SVP je suis super bloqué
0
:'-(
0
Il n'y a personne ???
meme pas une petite réponse ???

:'-(....
0
oui merci ^^
mais c'est la que j'ai pris le trois quart de ce code ( livre d'or site du zero ) , et les commentaires ne sont pas bon ...
Mais enfait le premier lien est bidon , enfait le vrai lien c'est sa : http://sc.teamfr.com/game.php , c'est pour sa que ce lien réapparait

en faite ce que j'essaye de faire , c'est un jeu en ligne , et ici , c'est une page pour chaque membre .
Donc imaginon un membre qui s'appelle o0leo0o , un autre qui sappelle toto , qu'il y ait la page game.php?membre=1 ( qui afficherait o0leo0o ) , et qu'il y ait game.php?membre=2 , qui afficherait Toto

Voila
et j'ai un probleme , comme le montre le screen , qui mets le même pseudo sur toutes les pages .
0
Je peux encore t'aider a trouver le probleme ???
tu as d'autres questions ?
0
euh donc si j'ai 500 membres je dois faire 500 variables ???

Je modifi quoi pour le rentrer dans le code ???
0
et j'ai pas bien compris ton dernier post :-)
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
25 nov. 2009 à 14:43
Non, il faut que tu utilises l'id du membre pour faire une requête SQL (avec la clause WHERE).
0
Euh... ?
si l'ID du membre est 1 , que dois je faire ?
je ne connais pas la "clause" WHERE ... ?
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
25 nov. 2009 à 14:51
Dans ta requête SQL :
SELECT * FROM table WHERE id = $_GET['id']
Tu ferais mieux de retourner apprendre le PHP et le SQL sur le Site du Zéro.
Tu t'imagines si le webmaster de CCM devait mettre à jour et ajouter chaque profil à la main !?
0
Donc , au lieu de mettre sa :
// --------------- Etape 2 ---------------
// Maintenant, on va afficher les joueurs
// ---------------------------------------

if (isset($_GET['login']))
{
$page = $_GET['login']; // On récupère le numéro de la page indiqué dans l'adresse (livreor.php?page=4)
}
else // La variable n'existe pas, c'est la première fois qu'on charge la page
{
$page = 1; // On se met sur la page 1 (par défaut)
}

// On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;

$reponse = mysql_query('SELECT * FROM membres_jeu ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);

while ($donnees = mysql_fetch_array($reponse))
{

echo '<p><strong>' . $donnees['login'] . '</strong> a cette adresse e-mail :<br />' . $donnees['mail'] . '</p>'; }

mysql_close(); // On n'oublie pas de fermer la connexion à MySQL ;o)

?> 

, tu veux que je mette sa :
// --------------- Etape 2 ---------------
// Maintenant, on va afficher les joueurs
// ---------------------------------------

if (isset($_GET['login']))
{
$page = $_GET['login']; // On récupère le numéro de la page indiqué dans l'adresse (livreor.php?page=4)
}
else // La variable n'existe pas, c'est la première fois qu'on charge la page
{
$page = 1; // On se met sur la page 1 (par défaut)
}

// On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;

$reponse = mysql_query(SELECT * FROM membres_jeu WHERE id = $_GET['id']);

while ($donnees = mysql_fetch_array($reponse))
{

echo '<p><em>Joueur</em> <strong>' . $donnees['login'] . '</<br /></p>'; }

mysql_close(); // On n'oublie pas de fermer la connexion à MySQL ;o)

?> 


si oui n sa fait bugger le script , et sa me mets sa sur le site :
Parse error: syntax error, unexpected T_STRING in /data2/www/teamfr/sc/game.php on line 48
0
Peux tu me rajouter ton code au bon endroit ?
car je n'y arrive pas désolé...
0