JeuWeb - Crée ton jeu par navigateur
[Interface Admin] Gestion des membres - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [Interface Admin] Gestion des membres (/showthread.php?tid=4919)



[Interface Admin] Gestion des membres - atra27 - 18-06-2010

Je fais ce post a la suite de celui-ci:
http://www.jeuweb.org/showthread.php?tid=240

et dans le cadre de celui-la:
http://www.jeuweb.org/showthread.php?tid=6560

Généralités:
-Le script suivant n'est pas utilisable directement! il demande quelques modifications pour s'accordr avec votre architecture.
-Ce script utilise dbFacile pour gerer la connection a la base et les requetes. En modifiant ces requetes, libre a vous d'utiliser pdo, les fonctions mysql_ de php ou tout autre framework.
-Il a été conçu pour fonctionner en étant inclus dans un index.php qui se charge des includes de config, bdd, verrifications diverses etc...
(ce fichier est inclus grace a la variable get page=playeredit sur le fichier index.php, libre a vous de modifier ça)
-Ce module est prévu pour l'administration, la mise en page et les sécurités sont réduites (vu qu'un admin est censé savoir ce qu'il fait :p )
-Il a été conçu pour s'adapter a la bdd au mieux pour permettre de suivre l'architecture sql d'un jeu en dévellopement...

Le script en question:
Code PHP :
<?php
//-----------------------------------------------------
//Si on a spécifié un id a modifier, on affiche les champs sql associées
//-----------------------------------------------------
if(isset($_GET['playerid'])){
$data = $db->fetchRow('SELECT *
FROM `'
.$config['db_prefix'].'user`
WHERE `id` = \''
.$_GET['playerid'].'\'
LIMIT 1'
);
echo
'<form action="?page=playeredit" method="post">';
echo
'<input type="hidden" name="modifyid" value="'.$data['id'].'"/>';
foreach (
$data as $key => $value) {
echo
$key.': <input type="text" name="'.$key.'" value="'.$value.'"/><br />';
}
echo
'<input type="submit" value="Submit" /></form>';
}
//-----------------------------------------------------
//si on a validé le formulaire de modification, on applique
//-----------------------------------------------------
elseif(isset($_POST['modifyid'])){
$modifid=$_POST['modifyid'];
unset(
$_POST['modifyid']);
$array=array();
foreach (
$_POST as $key => $value) {
$array[$key] = $value;
}
$db->update($array, $config['db_prefix'].'user', '`id` = \''.$modifid.'\'');
echo
'done';
echo
'<a href="index.php">Retour</a>';
//-----------------------------------------------------
//Sinon on affiche la liste des entrées dans la table
//-----------------------------------------------------
} else
{
if(!isset(
$_GET['pagenumber'])){
$_GET['pagenumber']=1;
}
$debut=($_GET['pagenumber']-1)*100;
$data = $db->fetch('SELECT id, pseudo
FROM `'
.$config['db_prefix'].'user`
LIMIT '
.$debut.', 99 ; ');
$i=0;
echo
'<table>';
echo
'<tr><td>Id</td><td>Pseudo</td></tr>';
while(isset(
$data[$i])){
echo
'<tr><td>'.$data[$i]['id'].'</td><td><a href="?page=playeredit&playerid='.$data[$i]['id'].' ">'.$data[$i]['pseudo'].'</a></td></tr>';
$i++;
}
echo
'</table>';
}

Explications:
Dans le premier block, on récupére tous les champs concernant l'id spécifié. Puis on crée un formulaire de façon a associer a chaque champs la valeur voulue.

Dans le second, on récupére les valeurs retournées, reforme le tableau et update la base de donnée.

Dans le troisiéme on affiche simplement les couples id/pseudo dans un tableau avec un lien vers la page de modification.
$_GET['pagenumber'] permet d'afficher les entrées 100 par 100. Libre a vous d'implementer un comptage des champs et tout ce qui est nécessaire pour faire un lien vers ces pages...

De la méme façon, libre a vous a partir de la de faire un champ recherche...

Voila donc ma premiére contribution réellement utile (quoique c'est pas sur!), si vous avez des suggestions d'améliorations, ne vous genez pas et proposez...
En espérant que sa servira a quelqu'un...
Bonne journée!