AccueilAideRechercherIdentifiez-vousInscrivez-vous

Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.
Avez-vous perdu votre courriel d'activation?
23 Mai 2012 à 19:09:53

Connexion avec identifiant, mot de passe et durée de la session
Rechercher
    avancée

News

Stats
8763 Messages dans 1087 Fils de discussion par 1002 Membres
Dernier membre: emilie
+  PHP Astux
|-+  NewsletTux v. 2
| |-+  NewsletTux 2 fr (fin du support)
| | |-+  Classer les listes d'email ou mailling list par ordre alphabetique.
Pages: [1]   Bas de page
Imprimer
Auteur Fil de discussion: Classer les listes d'email ou mailling list par ordre alphabetique.  (Lu 5648 fois)
ddec
Néophyte
*
Messages: 26


« le: 22 Janvier 2009 à 14:22:52 »

Serait il possible de classer les emails par nom et nom par email par exemple ?

De meme, ne serait pas possible de classer les listes de diffusion par ordre alphabetique et non par ordre de numero d'inscription ?

Merci d'avance pour ta réponse.
Journalisée
Matthieu
Administrateur
Membre Héroïque
*
Sexe: Homme
Messages: 3461


Unreal Power...


WWW
« Répondre #1 le: 22 Janvier 2009 à 15:03:13 »

Salut,

pour le classement des emails > techniquement, c'est possible, mais vu que la plupart du temps le nom n'est pas renseigné, ce tri n'aurait tout simplement pas donné de résultat, car trier sur un champ à 90% vide ... présente peu d'intérêt.
En revanche je peux te donner la modif pour que ça soit fait.

pour le classement des profils > idem, techniquement faisable, mais jamais fait pour le moment parce que personne ne me l'a jamais réclamé. Sur quelle(s ?) page(s ?) voudrais-tu ce classement par ordre alphabétique ?
Journalisée

ddec
Néophyte
*
Messages: 26


« Répondre #2 le: 23 Janvier 2009 à 15:23:03 »

bonjour,

Alors comme je l'ai deja expliqué ailleur, j'utilise le script en interne et donc j'ai rempli 100 % des fiches. C'est pour ca que le classement m'interesse car pour retrouver une personne, c'est plus simple que de chercher par email qui ne contient pas le nom de la personne.

Sinon, pour les news letters, je suis interessé par le classement lors de l'envoi et dans la fiche de la personne. En effet, j'ai classé mes listes (pour l'instant, j'en ai 10 avec des tags devant [ETB] [APS] [CE]... et la comme j'en ai rentré une autre, elle se retrouve a la fin et pas classé.

Si tu peut donc m'expliquer les modifs, je suis preneur a 200 %

Merci et encore félicitation pour ton boulot extraordinaire qui nous rend d'enormes services.
Journalisée
Matthieu
Administrateur
Membre Héroïque
*
Sexe: Homme
Messages: 3461


Unreal Power...


WWW
« Répondre #3 le: 23 Janvier 2009 à 15:36:43 »

pour ce qui est de la recherche, elle se fait sur la base du nom et de l'email ...
je te donne les modifs ce soir ou ce WE au plus tard.
Journalisée

Matthieu
Administrateur
Membre Héroïque
*
Sexe: Homme
Messages: 3461


Unreal Power...


WWW
« Répondre #4 le: 23 Janvier 2009 à 21:05:37 »

Hello,

pour trier par ordre alphabétique les profils de newsletters :

ouvre lib/functions_newsletters.php et cherche, ligne 540 :
Code:
    $req_profiles = "SELECT
                            p.id,
                            p.title,
                            p.descr,
                            p.formats,
                            p.lang,
                            p.reg_opened,
                            p.published,
                            COUNT(s.id_user) AS subscribers
                          FROM
                            ".DB_PREFIX."profiles p
                             LEFT JOIN
                              ".DB_PREFIX."subscriptions s
                            ON
                              s.id_profile = p.id
                          {REG_OPENED}
                          GROUP BY
                            p.id";

et juste après le GROUP BY, rajoute un ORDER BY comme ceci :
Code:
                         ORDER BY
                            p.title ASC";
de façon à avoir au final :
Code:
    $req_profiles = "SELECT
                            p.id,
                            p.title,
                            p.descr,
                            p.formats,
                            p.lang,
                            p.reg_opened,
                            p.published,
                            COUNT(s.id_user) AS subscribers
                          FROM
                            ".DB_PREFIX."profiles p
                             LEFT JOIN
                              ".DB_PREFIX."subscriptions s
                            ON
                              s.id_profile = p.id
                          {REG_OPENED}
                          GROUP BY
                            p.id";
                         GROUP BY
                            p.id
                         ORDER BY
                            p.title ASC";
les profils seront triés par titre croissant (alphabétique). Pour inverser le tri, remplace ASC par DESC.

pour le tri par nom d'abonné :

ouvre lib/functions_users.php et cherche, env. ligne 233 :

Code:
      $req_subscribers = "SELECT
                              u.id,
                              u.groupval,
                              u.name,
                              u.firstletter,
                              u.mail
                           FROM
                              ".DB_PREFIX."users u
                           WHERE
                              ({GROUP}{SEARCH}{LETTER})
                           ORDER BY
                              mail ASC";

remplace mail ASC (juste après le ORDER BY) par name ASC.
« Dernière édition: 26 Janvier 2009 à 15:26:38 par Matthieu » Journalisée

ddec
Néophyte
*
Messages: 26


« Répondre #5 le: 26 Janvier 2009 à 11:54:23 »

pour le classement des mails, c'est bon

mais pour le classement des newsletters, ca marche pas

Citation
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /public_html/mails/lib/functions_newsletters.php on line 1136

Ca correspond à :

Citation
   if (mysql_num_rows($profiles) != 0)

Une solution ?
Journalisée
ddec
Néophyte
*
Messages: 26


« Répondre #6 le: 26 Janvier 2009 à 12:20:57 »

[quote-----------------------------------------------
ERREUR :
-----------------------------------------------
Fichier : /public_html/mails/lib/functions_newsletters.php
Ligne : 1132
Date Heure : 2009/01/26 13:29:27
-----------------------------------------------
REQUETE SQL / MESSAGE D'ERREUR
-----------------------------------------------
SELECT

                            p.id,

                            p.title,

                            p.descr,

                            p.formats,

                            p.lang,

                            p.reg_opened,

                            p.published,

                            COUNT(s.id_user) AS subscribers

                          FROM

                            ntux2_profiles p

                             LEFT JOIN

                              ntux2_subscriptions s

                            ON

                              s.id_profile = p.id

                         

                          GROUP BY
                          p.id
              ORDER BY
                          p.title ASC ORDER BY id ASC;
-----------------------------------------------
RAPPORT MySQL :
-----------------------------------------------
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 'ORDER BY id ASC' at line 36
[/quote]
« Dernière édition: 26 Janvier 2009 à 13:52:33 par ddec » Journalisée
Andy
Modérateur Global
Membre Senior
*
Sexe: Homme
Messages: 482



« Répondre #7 le: 26 Janvier 2009 à 12:50:24 »

Salut,

Pourquoi tu as?
Citation
                          GROUP BY
                          p.title
              ORDER BY
                          p.title ASC ORDER BY id ASC;

alors qu'il me semble que tu devrais avoir:
Citation
                        GROUP BY
                            p.id
                         ORDER BY
                            p.title ASC";

Le trie par ordre ADCendant du titre (title) se fait par rapport à l'id de tes newslettres.
(moi je n'ai pas autant de lignes dans functions_newsletters.php)
Journalisée

Gros Travaux de restaurations maison durant quelques mois. Accès à internet perturbé durant cette période.
ddec
Néophyte
*
Messages: 26


« Répondre #8 le: 26 Janvier 2009 à 14:54:51 »

J'ai rentré cela mais bizarrement, dans le message d'erreur que je recois par e-mail, je recois ce que tu dis.
Journalisée
Matthieu
Administrateur
Membre Héroïque
*
Sexe: Homme
Messages: 3461


Unreal Power...


WWW
« Répondre #9 le: 26 Janvier 2009 à 15:24:57 »

tu ne peux pas avoir 2 clauses "order by" dans une requête MySQL.

Si tu veux utiliser plus d'un champ, il faut faire :
Code:
ORDER BY
  champ_1 {sens},
  champ_2 {sens},
  ...
  champ_n {sens};

en sachant que :
- ORDER BY est toujours le dernier (ou l'avant dernier s'il y a un LIMIT)
- {sens} peut être ASC ou DESC (peu impirte la casse) respectivement croissant (alphabétique) et décroissant (alphabétique inverse)


C'est ma première formulation qui est imprécise, désolé. Je la corrigge de suite.
Journalisée

ddec
Néophyte
*
Messages: 26


« Répondre #10 le: 29 Janvier 2009 à 09:51:58 »

C'est bon, tous fonctionne.

Merci.
Journalisée
Pages: [1]   Haut de page
Imprimer
Aller à:  

Powered by SMF 1.1.16 | SMF © 2011, Simple Machines
Amber design by Bloc | XHTML | CSS