Comment afficher les résultats d’une BDD sur sa page (Créer un compte)

  • WordPress :6.0
  • Statut : non résolu
11 sujets de 1 à 11 (sur un total de 11)
  • Auteur
    Messages
  • #2427479
    JBuendia41
    Participant
    Initié WordPress
    9 contributions

    Bonjour,

    Ma configuration WP actuelle

    • Version de PHP/MySQL : PHP version <b>8.0.19</b> & MySQL version <b>5.7.40-log</b>
    • Thème utilisé : Responsive
    • Extensions en place : Akismet Anti-Spam/Code Snippets/CSS & JavaScript Toolbox/Debug Info/inDiv for TablePress/Insert PHP Code Snippet/My Custom Functions/Responsive Starter Templates/Roosium Info/SecuPress Pro — WordPress Security/Secure DB Connection/TablePress/WP PHP Version Display/WP phpMyAdmin/WP-ServerInfo/WPS Hide Login/Yoast SEO
    • Nom de l’hébergeur : OVH
    • Adresse du site : https://www.gigsenpoche.org/

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

    Bonjour, l’idée est de faire apparaître sur la page « Agenda » du site « www.gigsenpoche.org », les résultats de la table « agenda » de la BDD = « johnskrioabddgig ». Il s’agit de dates de concerts dans la région Centre Val de Loire. Ceci en les classant tout d’abord par date puis par départements. Sous forme de tableau, il s’agirait de colonnes : date-departement-programmation-lieu-tarif-organisateurs.  Je suis novice en code que ce soit PHP, HTML ou CSS. J’aimerai savoir où je dois insérer mon code PHP ? Et comment l’insérer ? Est-ce que je dois aller sur le FTP qui héberge mon site sur OVH ? Voici le code:

    <!DOCTYPE html>

    <html>

    <head>

    <meta charset = ‘utf-8’>

    </head>

    <body>

    <?php

    $servname = « johnskrioabddgig.mysql.db »; $dbname = « agenda »; $user = « johnskrioabddgig »; $pass = « root »;

    try{

    $dbco = new PDO(« mysql:host=$servname;dbname=$dbname », $user, $pass);

    $dbco->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $sth = $dbco->prepare(« SELECT date, departement, programmation, lieu, tarif, organisateur FROM users

    ORDER by date ASC, departement ASC »);

    $sth-> execute();

    $resultat = $sth->fetchAll(PDO::FETCH_ASSOC);

    echo ‘

    ';
    
    print_r($resultat);
    
    echo '

    ‘;

    }

    catch(PDOException $e){

    echo « Erreur : » .$e->getMessage();

    }

    ?>

    </body>

    </html>

     

    Merci pour votre aide.

     

    #2427488
    Lumiere de Lune
    Participant
    Maître WordPress
    20531 contributions

    Tu devrais te plonger dans le codex, et découvrir les fonctions wordpress … https://codex.wordpress.org/fr:Accueil

    Comprendre la base de données, utiliser les fonctions WP pour sélectionner et manipuler les données. Si ton agenda est une table wp, bien entendu.

    #2427490
    JBuendia41
    Participant
    Initié WordPress
    9 contributions

    Qu’entends-tu par : « si ton agenda est une table wp »?  J’ai créé une BDD avec une table (‘agenda’) via php my admin chez OVH qui héberge mon site wordpress.

    #2427495
    ferman
    Participant
    Maître WordPress
    7084 contributions

    Qu’entends-tu par : « si ton agenda est une table wp »? J’ai créé une BDD avec une table (‘agenda’) via php my admin chez OVH qui héberge mon site wordpress.

    C’est donc une base de données externe, pas celle de wordpress, donc pas une table wp. Une solution pour afficher vos résultats: Vous pouvez mettre votre code à l’intérieur d’une fonction, ajouter un shortcode et ajouter le même shortcode  sur la page où  les résultats les doivent apparaitre.

    Vous mettez ensuite cette fonction soit dans le fichier functions.php de votre thème soit dans un plugin personnel facile à faire. Donc

    1. Dans functions.PHP ou plugin personnel:
    function ma_fonction(){

    Votre code PHP ICI
    }
    add_shortcode('mon_shortcode', 'ma_fonction');

    2.Dans la page souhaitée [mon_shortcode]

    • Cette réponse a été modifiée le il y a 1 année et 10 mois par ferman.
    • Cette réponse a été modifiée le il y a 1 année et 10 mois par ferman.
    #2427511
    Lumiere de Lune
    Participant
    Maître WordPress
    20531 contributions

    Je veux dire que :

    – au lieu de créer une table (ce qui veut dire tout un backend pour administrer les données), pourquoi ne pas créer un custom post type et éventuellement des customs fields, ce qui permet de bénéficier de tout l’éco système wordpress (archives, mise à jour dans l’admin, etc)

    – créer une table s’il le faut absolument n’empêche pas d’utiliser toutes les fonctions de la classe WpDb, pas besoin par exemple d’ouvrir une seconde connexion

    #2428027
    JBuendia41
    Participant
    Initié WordPress
    9 contributions

    Merci  Lumière de Lune et Ferman, je vais voir si je m’en sors 🙂

    #2428037
    JBuendia41
    Participant
    Initié WordPress
    9 contributions

    J’ai suivi la méthode de Ferman (avec le shortcode) et les données de la table « agenda » s’affichent bien dans ma page AGENDA. Par contre il va falloir que je modifie la mise en page des résultats, j’aimerais obtenir les résultats sous forme de lignes avec :

    la date – le département – la programmation – le lieu – le tarif – l’organisateur

    exemple :

    22/12/2022   37   GHOULIES (Rock 70’s de Kiev) + HUTOYING (Dream Pop de Tours)   L’atelier (372450 Saint-Perlinpinpin)  15,00€   FAITES DU BRUIT

    Avec une couleur de fond différente une ligne sur deux.

    Je suppose que pour modifier ce que j’obtiens actuellement en ce que je désire il faut que j’utilise du HTML et/ou du CSS. Question de débutant : est-ce que le code HTML et CSS doit être insérer dans le code PHP de la « function agenda » (dans function.php) ? Ou bien est-ce que je peux réaliser cette mise en page en insérant le code dans le shortcode  ( [agenda_shortcode] [/agenda_shortcode]), il me semble que c’est possible ?

    Voici ce qui s’affiche sur ma page AGENDA :

    Array
    (
        [0] => Array
            (
                [date] => 2022-10-22
                [departement] => 37
                [programmation] => MY BODY HORSE (Savage punk blues de Tours) - SHARPERS (Nervous pub rock de Blois) - CAUSA NOSTRA (Punk / O� de Montreuil) - KONECT' SON (Electro swing live de Tours) - 21h00
                [lieu] => Salles des f�tes de Chaumussay
    37350 Chaumussay
                [tarif] => 5
                [organisateur] => Association Le P'tit Paum�
            )
    
        [1] => Array
            (
                [date] => 2022-10-22
                [departement] => 45
                [programmation] => SYNDROME 81 (Street Punk de Brest) + BAD SHEEPS (Punk Rawk d'Orl�ans) - 20h00
                [lieu] => Le Dropkick Bar
    37 place du Ch�telet 
    45000 Orl�ans
                [tarif] => 8
                [organisateur] => 45Tours de POITRINE
            )
    
        [2] => Array
            (
                [date] => 2022-10-22
                [departement] => 45
                [programmation] => SYNDROME 81 (Street Punk de Brest) + BAD SHEEPS (Punk Rawk d'Orl�ans) - 20h00
                [lieu] => Le Dropkick Bar
    37 place du Ch�telet 
    45000 Orl�ans
                [tarif] => 8
                [organisateur] => 45Tours de POITRINE
            )
    
        [3] => Array
            (
                [date] => 2022-10-25
                [departement] => 41
                [programmation] => ROCKOMOTIVES FESTIVAL : Soir�e Propul'Son en partenariat avec la Fracama - BLEU SHINOBI + ELECTRIC VOCUHILA & BEHAJA + TIGRE BLEU - 20h00
                [lieu] => Troisi�me Volume du Minotaure
    41000 Vend�me
                [tarif] => 0
                [organisateur] => FIGURES LIBRES
            )
    
        [4] => Array
            (
                [date] => 2022-10-25
                [departement] => 41
                [programmation] => ROCKOMOTIVES FESTIVAL : Soir�e Propul'Son en partenariat avec la Fracama - BLEU SHINOBI + ELECTRIC VOCUHILA & BEHAJA + TIGRE BLEU - 20h00
                [lieu] => Troisi�me Volume du Minotaure
    41000 Vend�me
                [tarif] => 0
                [organisateur] => FIGURES LIBRES
            )
    
        [5] => Array
            (
                [date] => 2022-10-26
                [departement] => 41
                [programmation] => ROCKOMOTIVES FESTIVAL : HERMAN DUNE + The Healthy Boy vs Tereglio - 20h30
                [lieu] => Chapelle saint jacques
    41000 Vend�me
                [tarif] => 0
                [organisateur] => FIGURES LIBRES
            )
    
        [6] => Array
            (
                [date] => 2022-10-26
                [departement] => 41
                [programmation] => ROCKOMOTIVES FESTIVAL : HERMAN DUNE + The Healthy Boy vs Tereglio - 20h30
                [lieu] => Chapelle saint jacques
    41000 Vend�me
                [tarif] => 0
                [organisateur] => FIGURES LIBRES
            )
    
        [7] => Array
            (
                [date] => 2022-10-26
                [departement] => 41
                [programmation] => ROCKOMOTIVES FESTIVAL : � Mini mini Chat, Mini mini Show � concert jeune public
    LE CLUB DES CHATS - 15h00 � 17h00
                [lieu] => Troisi�me Volume du Minotaure
    41000 Vend�me
                [tarif] => 5
                [organisateur] => FIGURES LIBRES
            )
    
        [8] => Array
            (
                [date] => 2022-10-26
                [departement] => 41
                [programmation] => ROCKOMOTIVES FESTIVAL : � Mini mini Chat, Mini mini Show � concert jeune public
    LE CLUB DES CHATS - 15h00 � 17h00
                [lieu] => Troisi�me Volume du Minotaure
    41000 Vend�me
                [tarif] => 5
                [organisateur] => FIGURES LIBRES
            )
    
        [9] => Array
            (
                [date] => 2022-10-27
                [departement] => 41
                [programmation] => ROCKOMOTIVES FESTIVAL : FISHBACH + MATHILDE FERNANDEZ + JACQUES + THE HAUNTED YOUTH (bel) + ALAIN DAMASIO & YAN P�CHIN  - 19h00
                [lieu] => Le Minotaure
    41000 Vend�me
                [tarif] => 20
                [organisateur] => FIGURES LIBRES
            )
    
        [10] => Array
            (
                [date] => 2022-10-27
                [departement] => 41
                [programmation] => ROCKOMOTIVES FESTIVAL : FISHBACH + MATHILDE FERNANDEZ + JACQUES + THE HAUNTED YOUTH (bel) + ALAIN DAMASIO & YAN P�CHIN  - 19h00
                [lieu] => Le Minotaure
    41000 Vend�me
                [tarif] => 20
                [organisateur] => FIGURES LIBRES
            )
    
        [11] => Array
            (
                [date] => 2022-10-27
                [departement] => 41
                [programmation] => ROCKOMOTIVES FESTIVAL : BIBI CLUB (can) + MONOLITHE NOIR - 16h45
                [lieu] => La Fabrique du Dr Faton
    41000 Vend�me
                [tarif] => 0
                [organisateur] => FIGURES LIBRES
            )
    
        [12] => Array
            (
                [date] => 2022-10-27
                [departement] => 41
                [programmation] => ROCKOMOTIVES FESTIVAL : BIBI CLUB (can) + MONOLITHE NOIR - 16h45
                [lieu] => La Fabrique du Dr Faton
    41000 Vend�me
                [tarif] => 0
                [organisateur] => FIGURES LIBRES
            )
    
        [13] => Array
            (
                [date] => 2022-10-28
                [departement] => 41
                [programmation] => ROCKOMOTIVES FESTIVAL : STUFFED FOXES + BASS DRUM OF DEATH (usa)
                [lieu] => Troisi�me Volume du Minotaure
    41000 Vend�me
                [tarif] => 8
                [organisateur] => FIGURES LIBRES
            )
    
        [14] => Array
            (
                [date] => 2022-10-28
                [departement] => 41
                [programmation] => ROCKOMOTIVES FESTIVAL : STUFFED FOXES + BASS DRUM OF DEATH (usa)
                [lieu] => Troisi�me Volume du Minotaure
    41000 Vend�me
                [tarif] => 8
                [organisateur] => FIGURES LIBRES
            )
    
        [15] => Array
            (
                [date] => 2022-10-28
                [departement] => 41
                [programmation] => ROCKOMOTIVES FESTIVAL : EZ3KIEL + STAR FEMININE BAND + MAXWELL FARRINGTON & LE SUPER HOMARD + MIDBAND + GUS ENGLEHORN (can) + AEROBICONOISE + DJ UNVERSE  - 19h00
                [lieu] => Le Minotaure
    41000 Vend�me
                [tarif] => 25
                [organisateur] => FIGURES LIBRES
            )
    
        [16] => Array
            (
                [date] => 2022-10-28
                [departement] => 41
                [programmation] => ROCKOMOTIVES FESTIVAL : EZ3KIEL + STAR FEMININE BAND + MAXWELL FARRINGTON & LE SUPER HOMARD + MIDBAND + GUS ENGLEHORN (can) + AEROBICONOISE + DJ UNVERSE  - 19h00
                [lieu] => Le Minotaure
    41000 Vend�me
                [tarif] => 25
                [organisateur] => FIGURES LIBRES
            )
    
        [17] => Array
            (
                [date] => 2022-10-28
                [departement] => 41
                [programmation] => ROCKOMOTIVES FESTIVAL : MULE JENNY  - 17h45
                [lieu] => La Fabrique du Dr Faton
    41000 Vend�me
                [tarif] => 0
                [organisateur] => FIGURES LIBRES
            )
    
        [18] => Array
            (
                [date] => 2022-10-28
                [departement] => 41
                [programmation] => ROCKOMOTIVES FESTIVAL : MULE JENNY  - 17h45
                [lieu] => La Fabrique du Dr Faton
    41000 Vend�me
                [tarif] => 0
                [organisateur] => FIGURES LIBRES
            )
    
        [19] => Array
            (
                [date] => 2022-10-28
                [departement] => 41
                [programmation] => ROCKOMOTIVES FESTIVAL : ANTOINE WIELEMANS (bel) + PRIMEV�RE - 15h00
                [lieu] => Chapelle saint jacques
    41000 Vend�me
                [tarif] => 0
                [organisateur] => FIGURES LIBRES
            )
    
        [20] => Array
            (
                [date] => 2022-10-28
                [departement] => 41
                [programmation] => ROCKOMOTIVES FESTIVAL : ANTOINE WIELEMANS (bel) + PRIMEV�RE - 15h00
                [lieu] => Chapelle saint jacques
    41000 Vend�me
                [tarif] => 0
                [organisateur] => FIGURES LIBRES
            )
    
        [21] => Array
            (
                [date] => 2022-10-29
                [departement] => 41
                [programmation] => ROCKOMOTIVES FESTIVALES : DEWAERE - 17h 45
                [lieu] => La Fabrique du Dr Faton
    41000 Vend�me
                [tarif] => 0
                [organisateur] => FIGURES LIBRES
            )
    
        [22] => Array
            (
                [date] => 2022-10-29
                [departement] => 41
                [programmation] => ROCKOMOTIVES FESTIVALES : DEWAERE - 17h 45
                [lieu] => La Fabrique du Dr Faton
    41000 Vend�me
                [tarif] => 0
                [organisateur] => FIGURES LIBRES
            )
    
        [23] => Array
            (
                [date] => 2022-10-29
                [departement] => 41
                [programmation] => ROCKOMOTIVES FESTIVAL : THE LIMI�ANAS + CABADZI + SOPHIA KENNEDY + BRNS (bel) + MADMADMAD (uk/fr) + GUADAL TEJAZ + HONEY FOR PETZI (ch) - 19h 00
                [lieu] => Le Minotaure
    41000 Vend�me
                [tarif] => 25
                [organisateur] => FIGURES LIBRES
            )
    
        [24] => Array
            (
                [date] => 2022-10-29
                [departement] => 41
                [programmation] => ROCKOMOTIVES FESTIVAL : THE LIMI�ANAS + CABADZI + SOPHIA KENNEDY + BRNS (bel) + MADMADMAD (uk/fr) + GUADAL TEJAZ + HONEY FOR PETZI (ch) - 19h 00
                [lieu] => Le Minotaure
    41000 Vend�me
                [tarif] => 25
                [organisateur] => FIGURES LIBRES
            )
    
    )
    
    Merci d'aider un ignare du code :)
    #2428042
    ferman
    Participant
    Maître WordPress
    7084 contributions

    Juste pour confirmer: vous travaillez bien avec une base de données externe contenant une seule table  (et donc vous utilisez MySQLi) et non la base de données wordpress  (contenant les tables wordpress + la table que vous avez créée). Dans ce cas vous utiliseriez $wpdb? Ce n’est pas pareil.

    Si c’est le cas, aviez-vous vraiment besoin d’une base de données supplémentaire?

    Pour se HTML, il se met dans la fonction. Pour les CSS soit dans la fonction soit en dehors dans le fichier style si vous avez un thème enfant.

     

    • Cette réponse a été modifiée le il y a 1 année et 10 mois par ferman.
    • Cette réponse a été modifiée le il y a 1 année et 10 mois par ferman.
    #2428067
    JBuendia41
    Participant
    Initié WordPress
    9 contributions

    Bjr Ferman,

    Lorsque j’ai posté ma première demande d’aide il y avait 2 BDD, une pour WP et l’autre juste avec la table ‘agenda’,

    maintenant tout est sur la même BDD. Donc je vais utiliser $wpdb et me référer à ce que me conseillait Lumière de Lune –> le CODEX.

    Autre question (de débutant), pour insérer le code PHP j’ai utilisé « Snippets », je pensais retrouver ce code dans « function.php » du thème que j’utilise,

    mais pas du tout 🙁  Où se trouve t’il si j’ai besoin de le modifier ?

    Merci encore pour votre patience.

     

    #2428068
    JBuendia41
    Participant
    Initié WordPress
    9 contributions

    Je viens de trouver où modifier mon code dans « Snippets » 🙂

    #2430520
    JBuendia41
    Participant
    Initié WordPress
    9 contributions

    Bonjour, je reviens vers vous car depuis j’ai trouvé cette extension : https://plugin5.home.blog/ qui m’a été d’une grande utilité. J’ai réussi avec ELEMENTOR à modifier la mise en page du tableau (font, centrer, couleur de fond, etc…), mais j’ai encore quelques soucis, comme vous pouvez le constater les accents et caractères spéciaux sont remplacés par des points d’interrogations https://www.gigsenpoche.org/agenda/

    J’aimerai aussi changer l’ordre de la date J/M/A  et que les dates soient classées de la plus récente à la plus éloignée. Pour le classement il faut que j’utilise « SELECT * FROM agenda ORDER BY date ASC »  ‘agenda’ étant le nom de ma table et ‘date’ le champ, mais comme dans l’extension la connexion à la base de données et l’affichage des champs sont gérés par des formulaires, je suis perdu 🙂

    J’ai vérifié l’interclassement de la BDD et de la table, c’est en ‘uft8_general_ci’, je suppose que c’est à l’affichage qu’il y a un problème.

    Merci pour votre aide.

     

11 sujets de 1 à 11 (sur un total de 11)
  • Vous devez être connecté pour répondre à ce sujet.