Apophyss/Tehobene |
Voir le profil public |
Trouver plus de messages par Apophyss/Tehobene |
Aller à la page... |
TOUT sur les XML, C'est par ici !
Suivre Répondre |
|
Partager | Rechercher |
|
petite evolution a programer: tri selectif par colone sur name, rang et RP
__________________
Calend MalAimée < zerk a Son service > |
14/08/2002, 16h37 |
|
Apophyss/Tehobene |
Voir le profil public |
Trouver plus de messages par Apophyss/Tehobene |
|
__________________
Calend MalAimée < zerk a Son service > |
14/08/2002, 17h48 |
|
Alpha & Oméga
|
pour la derniere connexion ca apparais dans la page perso du membre, je n'ai pas donné le source ici...
Possibilité de voir sur http://www.templiers-nornes.fr.st Je ne peux plus mettre ici les source car maintenant cela s'étale sur plusieurs fichiers (la configuration a été centralisée) Tu peux donc soit me mailer apophyss@djeyl.net soit tu me le dis ici et j'editeré le fichier (vieux) en premier du template pour y faire les modif ... |
19/08/2002, 09h27 |
|
Apophyss/Tehobene |
Voir le profil public |
Trouver plus de messages par Apophyss/Tehobene |
|
kkun sait me dire la différence entre les membre "actifs " et les "non actifs" ?
Merci |
19/08/2002, 10h09 |
|
|
c vrai kil est pas mal ton nouvo script
mais bon fais moi l 1er sa sera pas mal il me fo juste les derniere conexion en derniere colone @+ |
20/08/2002, 02h40 |
|
|
Moi j'ai fait un utf8_decode(<donnée>) pour avoir les accents. Je ne sais pas si c'est la bonne méthode, mais ça marche.
|
20/08/2002, 07h35 |
|
Apophyss/Tehobene |
Voir le profil public |
Trouver plus de messages par Apophyss/Tehobene |
|
slt,
la modif de ton script marche pas si c possible tu peut pas modifier le 2emme celui ou on met le nom des rang ?? @+ |
20/08/2002, 13h17 |
|
Alpha & Oméga
|
voila qui est fait
|
20/08/2002, 14h05 |
|
Apophyss/Tehobene |
Voir le profil public |
Trouver plus de messages par Apophyss/Tehobene |
|
Qu'en dites vous ?
http://daoc.cat-the-psion.net/chroniques/ (A noter que le site est encore en developpement ) |
20/08/2002, 16h37 |
|
|
merci il marche nikel
je c que je suis chiant mais c pas possible de traduire les derniere connexion ?? @+ |
20/08/2002, 20h48 |
|
|
Citation :
|
21/08/2002, 07h58 |
|
Apophyss/Tehobene |
Voir le profil public |
Trouver plus de messages par Apophyss/Tehobene |
|
Edité le 09/02/03
Voila en open source ma méthode afin d'obtenir un tableau avec le classement selon la colonne désiré. D'un point de vue macroscopique, il y a 1 table MySQL, un fichier membres.php qui assure le remplissage de la table MySQL et qui sort le premier tableau sur internet ainsi que 5 fichiers dans un répertoire membres nommés membres1.php à membres5.php qui sort chaque colonne classée à partir de la table SQL. Vous pouvez voir comment ça marche sur: http://www.gaia-team.net/index.php?m...xml&page=index Note: la page met quelques secondes à s'afficher, car le code est important avec beaucoupd e requètes SQL. Attention, ce script ne marche pas chez Multimania mais fonctionne chez Free. Pour la table MySQL: CREATE TABLE daoc_membres ( nom varchar(35) NOT NULL default '', classe varchar(30) NOT NULL default '', level int(2) NOT NULL default '0', total int(25) NOT NULL default '0', lastw int(25) NOT NULL default '0', lastconnect varchar(15) NOT NULL default '', id int(3) NOT NULL default '0' ) Le fichier membres.php qui remplie la base SQL et affiche la première page des membres: <?php include ('codes.php'); //inclusion du fichier contenant les codes pour accéder à MySQL // on se connecte à MySQL $db = mysql_connect($hebergeur, $pseudo, $password); // on séléctionne la base mysql_select_db($base,$db); $sql = "DELETE FROM daoc_membres"; //mise à 0 de la table afin de réactualiser les données à partir du fichier XML $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); $id=1; //initialisation de la variable $id $ficxml=@fopen("http://www.camelot-europe.com/herald/servers/Broceliande/guilds/82.xml","r"); // ouverture du fichier XML $ligne=fgets($ficxml,256); while($ligne=fgets($ficxml,256)) { switch(substr(trim($ligne),0,6)) { case "<chara": $sql = "INSERT INTO daoc_membres VALUES('', '', '', '', '', '', '$id')"; // insertion d'autant de ligne dans la table qu'il y a de perso, tous avec un $id différent. $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); $id=$id+1; };}; $id=0; // réinitialisation de $id $ficxml=@fopen("http://www.camelot-europe.com/herald/servers/Broceliande/guilds/82.xml","r"); //réinitialisation des variables $ligne=fgets($ficxml,256); echo "<table border=1 bordercolor=black cellspacing=0 cellpadding=0 width='600'><tr><td><center><b>Nom</b></center></td><td><center><b><a href=membres/membres1.php>Classe</a></b></center></td><td><center><b><a href=membres/membres2.php>Niveau</a></b></center></td><td><center><b><a href=membres/membres3.php>RP total</a></b></center></td><td><center><b><a href=membres/membres4.php>RP dernière sem.</a></b></center></td><td><center><b><a href=membres/membres5.php>Dernière connec.</a></b></center></td></tr>\n"; //création du tableau while($ligne=fgets($ficxml,256)) { switch(substr(trim($ligne),0,6)) { case "<chara": $id=$id+1; $pos1=strpos($ligne,"\"",1)+1; $pos2=strpos($ligne,"\"",$pos1)-1; $nom=substr($ligne,$pos1,($pos2-$pos1)+1); $pos1=strpos($ligne,"\"",$pos2+2)+1; $pos2=strpos($ligne,"\"",$pos1)-1; $lastconnect=substr($ligne,$pos1,($pos2-$pos1)+1); if ($lastconnect==Recently) {$lastconnect= ".récente";}; if ($lastconnect=="3_Days") {$lastconnect="..3 jours";}; if ($lastconnect=="7_Days") {$lastconnect="...7 jours";}; if ($lastconnect=="2_Weeks") {$lastconnect="....2 semaines";}; if ($lastconnect==Inactive) {$lastconnect=".....sup. 2 sem.";}; $sql = "UPDATE daoc_membres SET nom='$nom', lastconnect='$lastconnect' WHERE id='$id'"; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); echo "<tr><td><center>$nom</center></td>"; break; //on vient de rentrer dans la table SQL le nom et la dernière connection, affichage dans le tableau. case "<class": $pos1=strpos($ligne,">",1)+1; $pos2=strpos($ligne,"<",$pos1)-1; $classe=substr($ligne,$pos1,($pos2-$pos1)+1); $classe=str_replace("ô","ô",$classe); $classe=str_replace("'","\\'",$classe); $classe=str_replace("aî","aî",$classe); $classe=str_replace("é","é",$classe); $sql = "UPDATE daoc_membres SET classe='$classe' WHERE id=$id"; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); echo "<td><center>$classe</center></td>\n"; break; case "<level": $pos1=strpos($ligne,">",1)+1; $pos2=strpos($ligne,"<",$pos1)-1; $level=substr($ligne,$pos1,($pos2-$pos1)+1); $sql = "UPDATE daoc_membres SET level='$level' WHERE id=$id"; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); echo "<td><center>$level</center></td>\n"; break; //on vient de rentrer dans la table SQL le level, affichage dans le tableau. case "<total": $pos1=strpos($ligne,">",1)+1; $pos2=strpos($ligne,"<",$pos1)-1; $total=substr($ligne,$pos1,($pos2-$pos1)+1); $sql = "UPDATE daoc_membres SET total='$total' WHERE id=$id"; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); echo "<td><center>$total</center></td>\n"; break; //on vient de rentrer dans la table SQL le total des RP, affichage dans le tableau. case "<lastw": $pos1=strpos($ligne,">",1)+1; $pos2=strpos($ligne,"<",$pos1)-1; $lastw=substr($ligne,$pos1,($pos2-$pos1)+1); $sql = "UPDATE daoc_membres SET lastw='$lastw' WHERE id=$id"; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); echo "<td><center>$lastw</center></td><td><center>$lastconnect</center></td></tr>\n"; break; //on vient de rentrer dans la table SQL les RP de la dernière semaine, affichage dans le tableau. }; }; fclose($ficxml); // on ferme la connexion à mysql mysql_close(); ?> </table> </center> Après, chaque fichier est dans un répertoire "membres" (ou sinon, modifier les noms dans le code précédant): membres1.php: <?php include ('../codes.php'); // on se connecte à MySQL $db = mysql_connect($hebergeur, $pseudo, $password); // on séléctionne la base mysql_select_db($base,$db); // on créer la requete SQL et on l'envoie $sql = 'SELECT * FROM daoc_membres ORDER by classe'; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); echo " <table border=1 bordercolor=black cellspacing=0 cellpadding=0 width='600'> <tr> <td><center><b><a href=../membres.php>Nom</a></b></center></td> <td><center><b>Classe</a></b></center></td> <td><center><b><a href=membres2.php>Niveau</b></center></td> <td><center><b><a href=membres3.php>RP total</a></b></center></td> <td><center><b><a href=membres4.php>RP dernière sem.</a></b></center></td> <td><center><b><a href=membres5.php>Dernière connec.</a></b></center></td> </tr>\n"; // on fait une boucle qui va faire un tour pour chaque enregistrements while($data = mysql_fetch_array($req)) { echo'<tr><td><center>'.$data['nom'].'</center></td> <td><center>'.$data['classe'].'</center></td> <td><center>'.$data['level'].'</center></td> <td><center>'.$data['total'].'</center></td> <td><center>'.$data['lastw'].'</center></td> <td><center>'.$data['lastconnect'].'</center></td> </tr>';}; // on ferme la connexion à mysql mysql_close(); ?> </table> membres 2.php: <?php include ('../codes.php'); // on se connecte à MySQL $db = mysql_connect($hebergeur, $pseudo, $password); // on séléctionne la base mysql_select_db($base,$db); // on créer la requete SQL et on l'envoie $sql = 'SELECT * FROM daoc_membres ORDER by level DESC'; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); echo " <table border=1 bordercolor=black cellspacing=0 cellpadding=0 width='600'> <tr> <td><center><b><a href=../membres.php>Nom</a></b></center></td> <td><center><b><a href=membres1.php>Classe</a></b></center></td> <td><center><b>Niveau</b></center></td> <td><center><b><a href=membres3.php>RP total</a></b></center></td> <td><center><b><a href=membres4.php>RP dernière sem.</a></b></center></td> <td><center><b><a href=membres5.php>Dernière connec.</a></b></center></td> </tr>\n"; // on fait une boucle qui va faire un tour pour chaque enregistrements while($data = mysql_fetch_array($req)) { echo'<tr><td><center>'.$data['nom'].'</center></td> <td><center>'.$data['classe'].'</center></td> <td><center>'.$data['level'].'</center></td> <td><center>'.$data['total'].'</center></td> <td><center>'.$data['lastw'].'</center></td> <td><center>'.$data['lastconnect'].'</center></td> </tr>';}; // on ferme la connexion à mysql mysql_close(); ?> </table> membres3.php: <?php include ('../codes.php'); // on se connecte à MySQL $db = mysql_connect($hebergeur, $pseudo, $password); // on séléctionne la base mysql_select_db($base,$db); // on créer la requete SQL et on l'envoie $sql = 'SELECT * FROM daoc_membres ORDER by total DESC'; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); echo " <table border=1 bordercolor=black cellspacing=0 cellpadding=0 width='600'> <tr> <td><center><b><a href=../membres.php>Nom</a></b></center></td> <td><center><b><a href=membres/membres1.php>Classe</a></b></center></td> <td><center><b><a href=membres2.php>Niveau</a></b></center></td> <td><center><b>RP total</b></center></td> <td><center><b><a href=membres4.php>RP dernière sem.</a></b></center></td> <td><center><b><a href=membres5.php>Dernière connec.</a></b></center></td> </tr>\n"; // on fait une boucle qui va faire un tour pour chaque enregistrements while($data = mysql_fetch_array($req)) { echo'<tr><td><center>'.$data['nom'].'</center></td> <td><center>'.$data['classe'].'</center></td> <td><center>'.$data['level'].'</center></td> <td><center>'.$data['total'].'</center></td> <td><center>'.$data['lastw'].'</center></td> <td><center>'.$data['lastconnect'].'</center></td> </tr>';}; // on ferme la connexion à mysql mysql_close(); ?> </table> membres4.php: <?php include ('../codes.php'); // on se connecte à MySQL $db = mysql_connect($hebergeur, $pseudo, $password); // on séléctionne la base mysql_select_db($base,$db); // on créer la requete SQL et on l'envoie $sql = 'SELECT * FROM daoc_membres ORDER by lastw DESC'; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); echo " <table border=1 bordercolor=black cellspacing=0 cellpadding=0 width='600'> <tr> <td><center><b><a href=../membres.php>Nom</a></b></center></td> <td><center><b><a href=membres1.php>Classe</a></b></center></td> <td><center><b><a href=membres2.php>Niveau</a></b></center></td> <td><center><b><a href=membres3.php>RP total</a></b></center></td> <td><center><b>RP dernière sem.</b></center></td> <td><center><b><a href=membres5.php>Dernière connec.</a></b></center></td> </tr>\n"; // on fait une boucle qui va faire un tour pour chaque enregistrements while($data = mysql_fetch_array($req)) { echo'<tr><td><center>'.$data['nom'].'</center></td> <td><center>'.$data['classe'].'</center></td> <td><center>'.$data['level'].'</center></td> <td><center>'.$data['total'].'</center></td> <td><center>'.$data['lastw'].'</center></td> <td><center>'.$data['lastconnect'].'</center></td> </tr>';}; // on ferme la connexion à mysql mysql_close(); ?> </table> membres5.php: <?php include ('../codes.php'); // on se connecte à MySQL $db = mysql_connect($hebergeur, $pseudo, $password); // on séléctionne la base mysql_select_db($base,$db); // on créer la requete SQL et on l'envoie $sql = 'SELECT * FROM daoc_membres ORDER by lastconnect DESC'; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); echo " <table border=1 bordercolor=black cellspacing=0 cellpadding=0 width='600'> <tr> <td><center><b><a href=../membres.php>Nom</a></b></center></td> <td><center><b><a href=membres1.php>Classe</a></b></center></td> <td><center><b><a href=membres2.php>Niveau</a></b></center></td> <td><center><b><a href=membres3.php>RP total</a></b></center></td> <td><center><b><a href=membres4.php>RP dernière sem.</a></b></center></td> <td><center><b>Dernière connec.</b></center></td> </tr>\n"; // on fait une boucle qui va faire un tour pour chaque enregistrements while($data = mysql_fetch_array($req)) { echo'<tr><td><center>'.$data['nom'].'</center></td> <td><center>'.$data['classe'].'</center></td> <td><center>'.$data['level'].'</center></td> <td><center>'.$data['total'].'</center></td> <td><center>'.$data['lastw'].'</center></td> <td><center>'.$data['lastconnect'].'</center></td> </tr>';}; // on ferme la connexion à mysql mysql_close(); ?> </table> Voilà, bon courage. feroas@nomade.fr |
21/08/2002, 15h01 |
|
Feroas de Fouen |
Voir le profil public |
Trouver plus de messages par Feroas de Fouen |
Alpha & Oméga
|
pour les artisants en voici un autre qui ne prend juste que les info et les met dans un tableau
<html> <head> <title>Artisanat</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <center> <table width="40%" border="1" bordercolor="#000000"> <tr> <td colspan="2" BGCOLOR="#000000"> <font face="Arial" color="#000000"><b>Type :</b></font></td> </tr><tr> <td width="70%" BGCOLOR="#000000"> <font face="Arial" color="#0000000"><center><b>Nom</b></center></font></td> <td width="30%" BGCOLOR="#000000"><font face="Arial" color="#000000"><center><b>Niveau</b></center></font></td> </tr> </table> <? if (isset($guilde) == 0) { // NUMERO DE LA GUILDE A CHANGER $guilde = "317"; } $xml_parseur = xml_parser_create(); $k; function ouverture ($parser, $name, $attrs){ global $k; global $r; global $guilde; global $craft; global $type; switch ($name) { case "TOP": ?><table width="40%" border="1" bordercolor="#000000"><tr><font face="Arial" color="#FFFFFF"><? $type = $attrs["TYPE"]; if ($type== fletching) { $craft = "Empenage"; } elseif ($type == weaponcraft) { $craft = "Forge"; } elseif ($type == armorcraft) { $craft = "Armurerie"; } elseif ($type == tailoring) { $craft = "Couture"; } echo $craft; ?></tr><? break; case "TOP_CHAR": ?><tr><td width="70%"><font face="Arial" color="#000000"><? echo $attrs["NAME"]; ?></td><? ?><td width="30%"><center><font face="Arial" color="#000000"><? echo $attrs["POINT"]; ?></td></tr><? break; } } function fermeture ($parser, $name){ global $k; global $r; switch ($name) { } } function texte ($parser, $data_text){ global $k; global $r; if ($k == 1) { echo $data_text; return $data_text; } } function defaut (){ return TRUE; } xml_set_element_handler($xml_parseur, "ouverture", "fermeture"); xml_set_character_data_handler($xml_parseur, "texte"); xml_set_default_handler($xml_parseur,"defaut"); $fp = fopen("http://www.camelot-europe.com/herald/servers/Broceliande/guilds/$guilde.xml", "r") or die("Fichier introuvable. L'analyse a ete suspendue"); while ($fdata = fread($fp, 2048)){ xml_parse($xml_parseur, $fdata, feof($fp)) or die( sprintf("Erreur XML : %s à la ligne %d\n", xml_error_string(xml_get_error_code($xml_parseur)), xml_get_current_line_number($xml_parseur)) ); } ?> </tr> </table> </center> </body> </html> De plus j'ai fini ma base de donnée, je peux biensur mettre le script en ligne de génération mais c'est tres lourd 32085 perso sur brocéliande. Par contre je suis pas contre des personnes connaissant bien php/sql pour m'aider à mettre en ligne cette base (comme les actes de naissance c'est base et le site allant avec serais pour voir les infos d'un joueur avec moteur de recherche, possibilité d'ajouter une description....) apophyss@djeyl.net |
21/08/2002, 18h59 |
|
Apophyss/Tehobene |
Voir le profil public |
Trouver plus de messages par Apophyss/Tehobene |
Suivre Répondre |
Connectés sur ce fil1 connecté (0 membre et 1 invité)
Afficher la liste détaillée des connectés
|