[Résolu] comment faire un tri ASC dans une select (Créer un compte)

  • WordPress :5.8
  • Statut : résolu
15 sujets de 1 à 15 (sur un total de 18)
  • Auteur
    Messages
  • #2390634
    flexi2202
    Participant
    Chevalier WordPress
    151 contributions

    Bonjour,

    Ma configuration WP actuelle

    • Version de PHP/MySQL : 8
    • Thème utilisé : colormag
    • Extensions en place : WPForms Lite ///WP-PageNavi ////WP-Optimize – Nettoyer, compresser, mettre en cache.////WP-Members///wp tarteaucitron.js self Hosted////WP BackItUp Édition Communautaire////Post Type Switcher///MonsterInsights – Google Analytics pour WordPress///LiteSpeed Cache////Insert PHP Code Snippet///Embed PDF Viewer////Custom Post Type UI////Calculated fields for ACF////Blocks CSS: CSS Editor for Gutenberg Blocks////All in One SEO Pack///AJAX Login and Registration modal popup DEV + inline form////Advanced Custom Fields////ACF Photo Gallery Field
    • Nom de l’hébergeur : hostinger
    • Adresse du site : construction

    Problème(s) rencontré(s) :

    bonjour a tous

    je viens de créer une requête mais après de nombreux essais je ne parviens pas a trier mes résultats par date de publication

    je serais curieux de voir la solution

     

    SELECT display_name , a.id, a.post_title,a.post_date ,b.meta_value as color, c.meta_value as post_intro ,d.meta_value as poisson
    FROM wp_users,wp_posts a 
    LEFT JOIN wp_postmeta b ON a.ID = b.post_id
    LEFT JOIN wp_postmeta c ON a.ID = c.post_id
    LEFT JOIN wp_postmeta d ON a.ID = d.post_id
    WHERE b.meta_key = 'total_des_prises'
    AND  c.meta_key = 'titre'
    AND  d.meta_key = 'date'
     LIMIT 15

    • Ce sujet a été modifié le il y a 1 mois et 3 semaines par flexi2202.
    • Ce sujet a été modifié le il y a 1 mois et 3 semaines par flexi2202.
    #2390654
    ferman
    Participant
    Maître WordPress
    4798 contributions

    Bonjour,

    Essayez en remplaçant la ligne 9 par:

    ORDER BY post_date ASC LIMIT 15;

    #2390667
    flexi2202
    Participant
    Chevalier WordPress
    151 contributions

    Merci pour la reponse

    je suis nul de chez nul en fait c’est  ma requête qui est mauvaise

    j’ ai tout mis en l air en essayant d ajoutant display_name et du coup cela a foutu le bazar

    voici donc la requête qui fonctionne et donc

    ma nouvelle question comment ajouter display_name

     

    $reponse = $bdd->query("SELECT  a.post_title, m1.meta_value AS total, m2.meta_value AS titre, m3.meta_value AS date
    FROM  wp_posts a
    LEFT JOIN wp_postmeta m1
        ON a.ID = m1.post_id
    LEFT JOIN wp_postmeta m2
        ON a.ID = m2.post_id
    LEFT JOIN wp_postmeta m3
        ON a.ID = m3.post_id
    WHERE a.post_type='post' 
    AND m1.meta_key='total_des_prises'
    AND m2.meta_key='titre'
    AND m3.meta_key='date';
    
     " );
    
    while ($donnees = $reponse->fetch())
    {var_dump($donnees);
    ?>
    <br>
    <?php
    }   

     

     

    #2390673
    ferman
    Participant
    Maître WordPress
    4798 contributions

    Display_name est dans la table wp_users. Donc si vous le voulez il faudra aussi faire une jointure (encore une) avec cette table (ON a.post_author = b.ID), b étant la table wp_users.

    • Cette réponse a été modifiée le il y a 1 mois et 2 semaines par ferman.
    • Cette réponse a été modifiée le il y a 1 mois et 2 semaines par ferman.
    #2390680
    flexi2202
    Participant
    Chevalier WordPress
    151 contributions

    Merci pour la reponse

    ce code je l ai trouve et je l ‘ai un peu modifie a ma sauce

    donc concrètement

    ma requête serait celle ci

     

    $reponse = $bdd->query("SELECT a.post_author a.post_title, m1.meta_value AS total, m2.meta_value AS titre, m3.meta_value AS date
    FROM  wp_posts a , wp_users b
    LEFT JOIN wp_postmeta m1
        ON a.ID = m1.post_id
    LEFT JOIN wp_postmeta m2
        ON a.ID = m2.post_id
    LEFT JOIN wp_postmeta m3
        ON a.ID = m3.post_id
    LEFT JOIN wp_users b
        ON b.ID = a.post_author_id
    WHERE a.post_type='post' 
    AND m1.meta_key='total_des_prises'
    AND m2.meta_key='titre'
    AND m3.meta_key='date';
    AND a.post_author = 'display_name'
     " );
    
    while ($donnees = $reponse->fetch())
    {var_dump($donnees);
    ?>
    <br>
    <?php
    }    
    
    a.post_author = b.ID), b étant la table wp_users.

     

    • Cette réponse a été modifiée le il y a 1 mois et 2 semaines par flexi2202.
    • Cette réponse a été modifiée le il y a 1 mois et 2 semaines par flexi2202.
    #2390687
    flexi2202
    Participant
    Chevalier WordPress
    151 contributions

    je viens de corriger mais il me reste cette erreur

    <b>Fatal error</b>: Uncaught PDOException: SQLSTATE[42S22]: Column not found: 1054 Unknown column ‘a.ID’ in ‘on clause’ in /home/u434600775/domains/pecheperle.be/public_html/phil/afficher-article-pecheur.php:84 Stack trace: #0 /home/u434600775/domains/pecheperle.be/public_html/phil/afficher-article-pecheur.php(84): PDO->query(‘\r\nSELECT b.disp…’) #1 {main} thrown in <b>/home/u434600775/domains/pecheperle.be/public_html/phil/afficher-article-pecheur.php</b> on line <b>84</b>

    $reponse = $bdd->query("
    SELECT 
    a.post_title, m1.meta_value AS total, m2.meta_value AS titre, m3.meta_value AS date ,m4.meta_value AS name
    FROM  wp_posts a , wp_users b
    LEFT JOIN wp_postmeta m1
        ON a.ID = m1.post_id
    LEFT JOIN wp_postmeta m2
        ON a.ID = m2.post_id
    LEFT JOIN wp_postmeta m3
        ON a.ID = m3.post_id
    LEFT JOIN wp_usermeta m4
        ON b.ID = m4.users_id
    WHERE a.post_type='post' 
    AND m1.meta_key='total_des_prises'
    AND m2.meta_key='titre'
    AND m3.meta_key='date';
    AND m4.meta_key='display_name';
     " );

    • Cette réponse a été modifiée le il y a 1 mois et 2 semaines par flexi2202.
    #2390694
    ferman
    Participant
    Maître WordPress
    4798 contributions

    Il manque une « , » après post_author à la ligne 1 et il faut enlever la ligne 25. Autrement comme je n’ai pas du tout suivi le sujet je ne peux pas juger du contenu de la requête mais vous avez une forme plus simple ICI (la dernière requête).

    #2390695
    flexi2202
    Participant
    Chevalier WordPress
    151 contributions

    bonsoir

    merci pour la réponse c ‘est gentil

    en fait je pense que tu n’ as pas lu ma deuxième correction qui me semble plus correcte

    ce que je cherche a faire est de pouvoir afficher 3 champs personnalise + l auteur ‘display_name

    Merci pour le lien je vais jeter un œil

    pour le lien c est génial mais comment ajouter display_name

    • Cette réponse a été modifiée le il y a 1 mois et 2 semaines par flexi2202.
    #2390706
    ferman
    Participant
    Maître WordPress
    4798 contributions

    Essayez ça:

    SELECT display_name, a.post_title, b.meta_key, b.meta_value
    FROM als_posts a
    LEFT JOIN als_users c ON (a.post_author = c.ID)
    LEFT JOIN als_postmeta b ON (a.ID = b.post_id)
    WHERE b.meta_key = 'total_des_prises' OR b.meta_key = 'titre' OR b.meta_key = 'date'

    #2390766
    flexi2202
    Participant
    Chevalier WordPress
    151 contributions

    merci pour le code

    mais malheureusement cela ne fonctionne pas

    je devrais avoir +- 158 sorties de peches et j’en ai 474 donc plus ou moins le triple

    ensuite j ai le total_des_prises qui ne s’affiche pas

     

     

     

     

    • Cette réponse a été modifiée le il y a 1 mois et 2 semaines par flexi2202.
    • Cette réponse a été modifiée le il y a 1 mois et 2 semaines par flexi2202.
    • Cette réponse a été modifiée le il y a 1 mois et 2 semaines par flexi2202.
    #2390771
    ferman
    Participant
    Maître WordPress
    4798 contributions

    Comme je vous le disais n’ayant pas suivi le sujet, je ne peux pas en dire plus. Cette requête fonctionne chez moi mais forcément avec mes paramètres . Pour le nombre 474 au lieu de 158, ça s’explique peut-être parce que le post_type n’est pas précisé.

    #2390772
    flexi2202
    Participant
    Chevalier WordPress
    151 contributions

    oui je comprends parfaitement , mais c est génial de m aider

    j’ai du chercher un peu et changer le préfixe « als »

    oui peut-être a cause du post_type mais comment l ajouter

    #2390773
    flexi2202
    Participant
    Chevalier WordPress
    151 contributions

    je viens de contrôler mais également des lignes en triples …

    #2390781
    ferman
    Participant
    Maître WordPress
    4798 contributions

    Préfixe als = erreur de ma part: c’est le préfixe de ma bdd locale. J’ai oublié de remettre wp. Désolé. A ma décharge il était tard.

    #2390787
    ferman
    Participant
    Maître WordPress
    4798 contributions

    Pour les résultats en triple, c’est normal: 3 metakeys = trois lignes. voir pj.

    Fichiers joints :
    Vous devez être connecté pour voir les fichiers joints.
15 sujets de 1 à 15 (sur un total de 18)
  • Vous devez être connecté pour répondre à ce sujet.