Trier une liste en PHP

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

gcvoiron
WRInaute impliqué
WRInaute impliqué
 
Messages: 494
Inscription: Mer Oct 19, 2005 15:23

Trier une liste en PHP

Message le Mar Avr 25, 2006 23:29

Bonjour, le code ci dessous me donne une liste de mes membres, avec leurs ID, leur email, et leur nombre de filleuls (ref). Je voudrai trier cette liste par nombre de filleuls. Comment faire? Merci.

Code: Tout sélectionner
<?
include("header.inc.php");

?>
          </strong>Liste des membres class&eacute; par parrain</u></span><br>
          <table width="88%" height="32" border="1" align="center" bordercolor="#000000" bgcolor="#FFFFFF">
<tr><td width="9%" class=Style1>
<center class=Style1 >ID</center></td><td width="20%" class=Style1>
<center class=Style1 >E-mail</center></td><td width="17%" class=Style1>
<center class=Style1 >Ref
<? $result = mysql_query("SELECT name, id, email, url, points, views, hits, savepoints FROM `demo_a_accounts`");
  while ($myrow = mysql_fetch_row($result)){
$direkt = mysql_num_rows(mysql_query("SELECT id FROM `demo_a_accounts` WHERE `refererid` = '$myrow[1]'"));
if ($myrow[7] == 1) {$sparen = "oui";} else {$sparen = "non";};
  $resultb = mysql_query("SELECT name, id, email, url, points, views, hits FROM `demo_a_accounts`  WHERE id='$myrow[1]'");
  while ($myrowb = mysql_fetch_row($resultb)) {
  echo"
<TR>
<td class=Style1><center class=Style1 ><b> $myrow[1] </b></TD>
<td class=Style1><center class=Style46 ><b><A href=mailto:$myrow[2]>E-mail</a></b></A></TD>
<td class=Style1><center class=Style1 ><b>Refs: $direkt </b></TD>";
};
};
?>


dd32
Modérateur
Modérateur
 
Messages: 3262
Inscription: Ven Sep 09, 2005 10:21

Message le Mar Avr 25, 2006 23:38

Coucou,

le schéma de la table demo_a_accounts serait un plus stp.
Et si tu avais ajouté davantage de variables ton code serait un peu plus lisible mais là n'est pas la question... :wink:

Commence par calculer le nombre_total_filleul par id membre et ensuite tu fais un order by nombre_total_filleul ??

gcvoiron
WRInaute impliqué
WRInaute impliqué
 
Messages: 494
Inscription: Mer Oct 19, 2005 15:23

Message le Mar Avr 25, 2006 23:47

Voici le schéma de la table :
Image
Commence par calculer le nombre_total_filleul par id membre

Comment faire? Merci.

mumbly
WRInaute discret
WRInaute discret
 
Messages: 70
Inscription: Mer Nov 23, 2005 17:12

Message le Mar Avr 25, 2006 23:53

Il faudrait inserer je pense
ORDER BY ref DESC
derriere
WHERE id='$myrow[1]'

gcvoiron
WRInaute impliqué
WRInaute impliqué
 
Messages: 494
Inscription: Mer Oct 19, 2005 15:23

Message le Mar Avr 25, 2006 23:56

Non, ça ne marche pas, ça n'affiche pas d'erreur, amis ce n'est pas trier.

mumbly
WRInaute discret
WRInaute discret
 
Messages: 70
Inscription: Mer Nov 23, 2005 17:12

Message le Mer Avr 26, 2006 0:06

Alors essaye de remplacer ca

Code: Tout sélectionner
$result = mysql_query("SELECT name, id, email, url, points, views, hits, savepoints FROM `demo_a_accounts`");


par

Code: Tout sélectionner
$result = mysql_query("SELECT name, id, email, url, points, views, hits, savepoints FROM `demo_a_accounts` ORDER BY ref DESC");


en esperant que ce soit cela

gcvoiron
WRInaute impliqué
WRInaute impliqué
 
Messages: 494
Inscription: Mer Oct 19, 2005 15:23

Message le Mer Avr 26, 2006 0:10

Non, ça ne marche pas, ça affiche cette erreur :
Ref Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in liste-parrains.php on line 338

gcvoiron
WRInaute impliqué
WRInaute impliqué
 
Messages: 494
Inscription: Mer Oct 19, 2005 15:23

Message le Mer Avr 26, 2006 0:11

La ligne 338 est la ligne suivante :
while ($myrow = mysql_fetch_row($result)){


dd32
Modérateur
Modérateur
 
Messages: 3262
Inscription: Ven Sep 09, 2005 10:21

Message le Mer Avr 26, 2006 0:19

manque une partie dans la fonction (http://fr2.php.net/mysql_query)...
quant à moi j'ai cerné le problème mais j'ai vraiment la flemme, sorry...

mumbly
WRInaute discret
WRInaute discret
 
Messages: 70
Inscription: Mer Nov 23, 2005 17:12

Message le Mer Avr 26, 2006 0:27

arf la bourde ref n'existe pas dans ta table!
Remplace le par refererid
(du moins je pense que c'est le champs du nombre de filleul)

gcvoiron
WRInaute impliqué
WRInaute impliqué
 
Messages: 494
Inscription: Mer Oct 19, 2005 15:23

Message le Mer Avr 26, 2006 0:31

Non ça ne marche toujours pas. Le message d'erreur est le suivant :
Ref Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in liste-parrains.php on line 338


dd32
Modérateur
Modérateur
 
Messages: 3262
Inscription: Ven Sep 09, 2005 10:21

Message le Mer Avr 26, 2006 0:35

Je pense qu'il faut chercher dans une requête SQL de ce genre :
Code: Tout sélectionner
SELECT COUNT( DISTINCT D.refererid ), E.id  FROM demo_a_accounts D, demo_a_accounts E WHERE D.refererid = E.id GROUP BY E.refererid ORDER BY E.id

??

Ou, si la requête est fausse, en gros l'idée c'est de faire une jointure sur la même table,
de grouper par refererid (GROUP BY),
de compter les rereferid
et ensuite de les ordonner (ORDER BY)

mais c'est une idée de lessivée à 1h du mat' lol

mumbly
WRInaute discret
WRInaute discret
 
Messages: 70
Inscription: Mer Nov 23, 2005 17:12

Message le Mer Avr 26, 2006 7:59

le mieux c'est de donner le nom et l'adresse de ce script pour que je regarde ca de pres

gcvoiron
WRInaute impliqué
WRInaute impliqué
 
Messages: 494
Inscription: Mer Oct 19, 2005 15:23

Message le Mer Avr 26, 2006 8:08

Vous voulez l'adresse de quoi? De la page de CODE?

gcvoiron
WRInaute impliqué
WRInaute impliqué
 
Messages: 494
Inscription: Mer Oct 19, 2005 15:23

Message le Ven Avr 28, 2006 14:54

J'ai essayé pas mal de possibilitées en vain. Voilà le CODE :
Code: Tout sélectionner
<?
include("header.inc.php");

?>
<? $result = mysql_query("SELECT name, id, email FROM `demo_a_accounts`");
   while ($myrow = mysql_fetch_row($result)){
$direkt = mysql_num_rows(mysql_query("SELECT id FROM `demo_a_accounts` WHERE `refererid` = '$myrow[1]'"));
   echo"
Affichage des valeurs
};
?>


N'arrivant toujours pas à trier par "Ref", je pensais à ceci :
->Créer une nouvelle valeur "nbref" dans demo_a_accounts
->Stocker dans cette valeur le nombre de filleuls par membre "$direkt"
->Et après prendre dans demo_a_accounts les valeur ID email, nbref, les lister et trier par nbref.
Qu'en pensez-vous? Est-ce réalisable?
Merci.


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :

Consultez la description détaillée des produits ou services de Google suivants : Google Sets

  • Stratégies de mots-clés
    Cet outil vous permet de créer à partir de quelques mots-clés une liste d'expressions constituées des mots pris dans tous les ordres possibles. Il sert aux analyses de positionnement et achats de mots-clés.
  • Lister les sous-domaines
    Cet outil vous permet de trouver la liste des sous-domaines (indexés) d'un site.


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités