Classement

Résolu/Fermé
tribuforex Messages postés 30 Date d'inscription vendredi 27 mars 2009 Statut Membre Dernière intervention 16 décembre 2012 - 6 juil. 2012 à 19:27
tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 - 11 juil. 2012 à 17:48
Bonsoir,

Cette après midi, j'ai réussi à mettre en place ce que je voulais faire grâce à l'aide des membres du forum Commentcamarche (encore merci à "le père", dont l'aide a été plus que précieuse).

Je bloque désormais sur un autre problème assez simple en soit, mais je n'y arrive pas : faire sortir les 10 meilleurs ID de ma table MYSQL en fonction de la valeur de "total_value".

Voici ce que j'ai:
<?php $rating_dbhost        = 'xxxxxxx';
	$rating_dbuser        = 'xxxxxxx';
	$rating_dbpass        = 'xxxxxxx';
	$rating_dbname        = 'xxxxxxxx';
	$rating_tableName     = 'fx_ratings';
	$rating_path_db       = ''; // the path to your db.php file (not used yet!)
	$rating_path_rpc      = ''; // the path to your rpc.php file (not used yet!)

	
mysql_connect($rating_dbhost, $rating_dbuser, $rating_dbpass) or die  ('Error connecting to mysql');
$result=mysql_query("SELECT total_votes, total_value, used_ips, id FROM $rating_dbname.$rating_tableName")or die(" Error: ".mysql_error());
...


La suite, je ne trouve pas. Il devrait y avoir du "SORT" si j'ai bien compris...

Merci d'avance pour votre aide!!
Vincent.

11 réponses

tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 219
6 juil. 2012 à 21:16
Salut,

Classement par ordre décroissant avec une limite d'affichage de 10..non?
SELECT ID FROM ma_table ORDER BY total_value DESC LIMIT 10
0
tribuforex Messages postés 30 Date d'inscription vendredi 27 mars 2009 Statut Membre Dernière intervention 16 décembre 2012
7 juil. 2012 à 00:53
Bonsoir tryan44 et merci de m'aider!

Alors, j'ai mis ca :
<?php $rating_dbhost        = 'xxxxxxx';
	$rating_dbuser        = 'xxxxxxx';
	$rating_dbpass        = 'xxxxxxx';
	$rating_dbname        = 'xxxxxxxx';
	$rating_tableName     = 'fx_ratings';

mysql_connect($rating_dbhost, $rating_dbuser, $rating_dbpass) or die  ('Error connecting to mysql');

$result=mysql_query("SELECT id FROM $rating_dbname.$rating_tableName ORDER BY total_value DESC LIMIT 10")or die(" Error: ".mysql_error());
				
while($top10_membre = $db->fetch_assoc($result))
				{
					echo '<a href="profile.php?id='. $top10_membre['id'] .'">'. $top10_membre['id'] .'</a> (<i>'. $top10_membre['total_votes'] .'</i>), ';
				}
			?>


Mais ca ne me sort pas de résulats... Une idée sur ce qui ne va pas?

Merci!
Bonne soirée et bon WE!!
0
tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 219
7 juil. 2012 à 09:06
A tester,

<?php 
    $rating_dbhost        = 'xxxxxxx';
	$rating_dbuser        = 'xxxxxxx';
	$rating_dbpass        = 'xxxxxxx';
	$rating_dbname        = 'xxxxxxxx';
	$rating_tableName     = 'fx_ratings';

mysql_connect("$rating_dbhost", "$rating_dbuser", "$rating_dbpass");
mysql_select_db("$rating_dbname") or die mysql_error();

$result=mysql_query("SELECT id,total_votes FROM $rating_tableName ORDER BY total_value DESC LIMIT 10");	
while($top10_membre = mysql_fetch_array($result))
{
	echo '<a href="profile.php?id='.$top10_membre['id'].'">'.$top10_membre['id'].'</a> (<i>'.$top10_membre['total_votes'].'</i>)';
} 
?>
0
tribuforex Messages postés 30 Date d'inscription vendredi 27 mars 2009 Statut Membre Dernière intervention 16 décembre 2012
7 juil. 2012 à 13:26
Ca laisse la page blanche avec ce code..
0

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

Posez votre question
tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 219
7 juil. 2012 à 14:01
Bha là je ne vois pas ... pas de messages d'erreur et page vide. La table fx_ratings contient bien quelque chose?
0
tribuforex Messages postés 30 Date d'inscription vendredi 27 mars 2009 Statut Membre Dernière intervention 16 décembre 2012
8 juil. 2012 à 11:19
Oui, la table contient bien les colonnes id, total_votes, total_value
Et des valeurs sont déjà enregistrées.

Le code source de la page me laisse juste un 1, rien d'autre n'est écrit.
(en sachant que la page de test ne comporte que ce code).
0
tribuforex Messages postés 30 Date d'inscription vendredi 27 mars 2009 Statut Membre Dernière intervention 16 décembre 2012
9 juil. 2012 à 11:55
Mais comment vérifier déjà qu'il se connecte bien à la base de données??
(vu que le code source ne laisse qu'un "1", c'est dur à dire..)

Au cas où: rappel, j'ai bien une base de données "XXXXXX", qui comporte une table nommée "fx_ratings", dont les colonnes sont id, total_votes, total_value
Et des valeurs sont déjà enregistrées
0
tribuforex Messages postés 30 Date d'inscription vendredi 27 mars 2009 Statut Membre Dernière intervention 16 décembre 2012
11 juil. 2012 à 08:42
<?php   $rating_dbhost        = "localhost";
	$rating_dbuser        = "xxxxx";
	$rating_dbpass        = "xxxxx";
	$rating_dbname        = "xxxxx";
	$rating_tableName     = "fx_ratings";

mysql_connect("$rating_dbhost", "$rating_dbuser", "$rating_dbpass" or die("MySQL database '".$rating_dbname."' not accessible.<br>\n"); 
mysql_select_db("$rating_dbname") or die("Enable to select ".$rating_tableName." database<br>\n");

$result=mysql_query("SELECT id,total_votes FROM $rating_tableName ORDER BY total_value DESC LIMIT 10");	
while($top10_membre = mysql_fetch_array($result))
{
	echo '<a href="profile.php?id='.$top10_membre['id'].'">'.$top10_membre['id'].'</a> (<i>'.$top10_membre['total_votes'].'</i>)';
} 
?>


Je reste en page blanche... Et aucun message d'erreur...
0
tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 219
11 juil. 2012 à 13:43
A tester :
<?php   

$rating_dbhost        = "localhost";
$rating_dbuser        = "xxxxx";
$rating_dbpass        = "xxxxx";
$rating_dbname        = "xxxxx";
$rating_tableName     = "fx_ratings";

$link = mysql_connect($rating_dbhost, $rating_dbuser, $rating_dbpass); 
if (!$link) {
	die('Connexion impossible : ' . mysql_error());
}
else{
	echo 'Connexion ok';
}

$db_selected = mysql_select_db($rating_tableName, $link);
if (!$db_selected) {
	die ('Table '.$rating_tableName.' introuvable : ' . mysql_error());
}
else{
	echo ''.$rating_tableName.' ok';
}

$result = mysql_query("SELECT id,total_votes FROM fx_ratings ORDER BY total_value DESC LIMIT 10");	
if(mysql_num_rows($result) == 0)
{
	echo 'Aucune données!';
}
else{
	while($top10_membre = mysql_fetch_array($result))
	{
		echo '<a href="profile.php?id='.$top10_membre['id'].'">'.$top10_membre['id'].'</a> (<i>'.$top10_membre['total_votes'].'</i>)';
	} 
}
?>
0
tribuforex Messages postés 30 Date d'inscription vendredi 27 mars 2009 Statut Membre Dernière intervention 16 décembre 2012
11 juil. 2012 à 14:45
Ca marche!!

En fait $rating_tableName devait renseigner le nom de la base de donnée et non de la table dans la base de donnée.
Ensuite, c'est l'appel FROM fx_ratings qui va chercher au bon endroit.

Un GRAND merci tryan44 d'avoir pris le temps de m'aider. C'est très gentil de ta part.

Salutations!
Vincent.
0
tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 219
11 juil. 2012 à 17:48
Cool :).
Faut mettre le poste en résolu maintenant.
0