[RESOLU]Lire quelques valeurs sur une base Mysql d'un forum ipb

Lire quelques valeurs sur une base Mysql d'un forum ipb [RESOLU] - PHP - Programmation

Marsh Posté le 24-07-2006 à 14:11:08    

Slt à tous.  :hello:  
J'ai installé un petit mod de points sur un forum ipb, et je cherche à faire un classement général de ceux qui ont le plus de points.
Donc je voudrais faire un tableau, avec le speudo et à coté le nombre de points gagné.
 

Code :
  1. <?php
  2. $db = mysql_connect('localhost', 'root', 'root');
  3. mysql_select_db('utos',$db);
  4. $req = mysql_query('SELECT members_display_name,points FROM ipb_members');
  5. $res = mysql_num_rows($req);
  6. echo '<center>Il y a '.$res.' enregistrement(s) dans le classement.</center>';
  7. echo '<br/>';
  8. while( $contenu = mysql_fetch_array ($req))
  9. {
  10. echo '<table width="502" height="20" border="1" align="center">';
  11. echo '<tr>';
  12. echo '<td width="50%">&nbsp;&nbsp;Membre : '.$contenu[members_display_name].'&nbsp;&nbsp;</td>';
  13. echo '<td width="50%">&nbsp;&nbsp;Points : '.$contenu[points].'&nbsp;&nbsp;</td>';
  14. echo '</tr>';
  15. echo '</table>';
  16.  
  17.  
  18. }
  19. print '</table>';
  20. print'</div>';
  21. mysql_close($db);
  22. ?>


 
 
Pour le moment, j'ai pu coder ces quelques lignes...
 
Donc les prbs:
-Comment faire pour afficher par ordre décroissant, avec ceux qui ont le plus de points en haut
-Comment faire si tout fonctonne en localhost et pas sur 1&1 xD
 
 
 
merci à tous ceux qui pourrais m'aider  :(  
ps: n00bies inside  :D

Message cité 1 fois
Message édité par destroyeur04 le 25-07-2006 à 20:17:32
Reply

Marsh Posté le 24-07-2006 à 14:11:08   

Reply

Marsh Posté le 24-07-2006 à 14:33:46    

destroyeur04 a écrit :


Donc les prbs:
-Comment faire pour afficher par ordre décroissant, avec ceux qui ont le plus de points en haut


 
SELECT members_display_name,points FROM ipb_members order by points desc;
 

destroyeur04 a écrit :


-Comment faire si tout fonctonne en localhost et pas sur 1&1 xD


 
Ca ne fonctionne pas n'a jamais été très parlant comme message d'erreur :D

Reply

Marsh Posté le 24-07-2006 à 17:25:14    

prb n°1 c'est réglé ça marche ! merci.  :jap:  
 

Code :
  1. <?php
  2. $db = mysql_connect('xxxxxxxx.1and1.fr','xxxxxxxxxx','xxxxxxxxxx') or die ("erreur de connexion" );
  3. mysql_select_db('xxxxxxxxxxx',$db) or die ("erreur de connexion base" );
  4. $req = mysql_query("SELECT members_display_name,points FROM ipb_members order by points desc; " ) or die ("erreur requête" );
  5. $res = mysql_num_rows($req);
  6. echo '<center>Il y a '.$res.' enregistrement(s) dans la table Clients.</center>';
  7. echo '<br/>';
  8. while( $contenu = mysql_fetch_array ($req))
  9. {
  10. echo '<table width="502" height="20" border="1" align="center">';
  11. echo '<tr>';
  12. echo '<td width="50%">&nbsp;&nbsp;Membre : '.$contenu[members_display_name].'&nbsp;&nbsp;</td>';
  13. echo '<td width="50%">&nbsp;&nbsp;Points : '.$contenu[points].'&nbsp;&nbsp;</td>';
  14. echo '</tr>';
  15. echo '</table>';
  16.  
  17.  
  18. }
  19. print '</table>';
  20. print'</div>';
  21. mysql_close($db);
  22. ?>


 
prb n°2 -> http://www.utoshop.fr/classement.php
 
 
et j'obtiens ça  

Citation :

erreur requête


Alors que en local tout marche :s


Message édité par destroyeur04 le 24-07-2006 à 17:31:03
Reply

Marsh Posté le 24-07-2006 à 18:14:42    

Ouais, enfin, erreur requête c'est pas spécialement parlant non plus, récupère au moins le message d'erreur de mysql le temps de faire le debug :)

Reply

Marsh Posté le 24-07-2006 à 18:23:59    

le prb , c'est que n'est aucun message d'erreur à part "erreur requête"
 
Quand je vire le "or die ("erreur requête" )", j'obtiens  

Citation :

Il y a enregistrement(s) dans le classement


:/

Reply

Marsh Posté le 24-07-2006 à 18:25:11    

Essais or die(mysql_error());

Reply

Marsh Posté le 24-07-2006 à 19:00:17    

Arf j'ai trouvé :p
 
le prb vennais du nom d'une des tables de la base mysql xD
 
 
merci beaucoup dwogsi et naceroth :jap:
:p

Reply

Marsh Posté le 25-07-2006 à 03:58:01    

Encore un petit prb.
Je voudrais améliorer le script de manière à ce les résultats du classement ne s'affichent que 50 par 50.
J'ai pensé passer par l'url classement.php?u=0 puis mettre un link classement.php?u=50 etc...
 

Code :
  1. <?php
  2. include "conf_global.php";
  3. $host = $INFO['sql_host'];
  4. $user = $INFO['sql_user'];
  5. $pass = $INFO['sql_pass'];
  6. $base = $INFO['sql_database'];
  7. $lmn = $HTTP_GET_VARS['u'];
  8. $db = mysql_connect($host,$user,$pass) or die ("erreur de connexion" );
  9. mysql_select_db($base,$db) or die ("erreur de connexion base" );
  10. $req = mysql_query("SELECT SQL_BIG_RESULT members_display_name,points FROM IPB_members order by points desc LIMIT ".$lmn.",50" ) or die(mysql_error());


 
Le fait d'utiliser des varibles php acquise par la fonction $HTTP_GET_VARS dans des requette sql n'ouvre-t-il une faille sql injection sur la table des membres ?
Comment faire pour le script ne plante pas si l'utilsateur se rends sur l'adresse classement.php ou lieu de classement.php?u=0

Citation :

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '50' at line 1


Message édité par destroyeur04 le 25-07-2006 à 04:49:21
Reply

Marsh Posté le 25-07-2006 à 08:06:27    

oui ca ouvre une faille
ca plante parce que tu n initialises pas ta variable
$lmn = ( isset($_GET['u']) && is_numeric($_GET['u']) ) ?  $_GET['u'] : 0;
en ligne 7
 
avec ca tu corriges ta faille et ton bug :)
(on n utilise plus les $http_*_vars mais $_* )

Reply

Marsh Posté le 25-07-2006 à 20:15:41    

youpi ça marche  :love:  
 
merci  mIRROR  :jap:

Reply

Marsh Posté le 25-07-2006 à 20:15:41   

Reply

Marsh Posté le 26-07-2006 à 07:43:33    

iourouelckoominn

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed