pourquoi ma requête ne fonctionne pas (Créer un compte)

  • WordPress :5.8
  • Statut : hors support
  • Ce sujet contient 13 réponses, 4 participants et a été mis à jour pour la dernière fois par flexi2202, le il y a 1 mois.
14 sujets de 1 à 14 (sur un total de 14)
  • Auteur
    Messages
  • #2387353
    flexi2202
    Participant
    Chevalier WordPress
    132 contributions

    Bonjour,

    Ma configuration WP actuelle

    • Version de PHP/MySQL : 8
    • Thème utilisé : Twenty NineteenVersion : 2.1
    • Extensions en place : wp-members ACF CPT ACF gallery
    • Nom de l’hébergeur : hostinger
    • Adresse du site : en test

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

    bonjour a tous

    pourquoi cette requête ne fonctionne pas pour afficher les fields

    			 <?php		 
                  
    			   
    			    $sql = $wpdb->prepare("SELECT fields,entry_id FROM wp_evf_entries ");
    $messages = $wpdb->get_results($sql);
    if ( $messages ){
       foreach ( $messages as $entry_id ){
          $nom_1 = $entry_id->fields;
          ...
       }
    }

     

    #2387363
    stephan_b
    Participant
    Padawan WordPress
    52 contributions

    L’extension “Everest Forms” n’est pas listée dans la liste, et la table *_evf_entries apparait dans ce plugin, donc je suppose qu’on parle de la même chose.

    Ensuite la phrase “pourquoi cette requête ne fonctionne pas pour afficher les fields” n’est pas claire: quelle est l’erreur? Une erreur SQL, une erreur WordPress, PHP?

    Ensuite le code est faux:

    <?php		 
    	$sql = $wpdb->prepare("SELECT fields,entry_id FROM wp_evf_entries ");
    	$messages = $wpdb->get_results($sql);
    	if ( $messages ){
       foreach ( $entry as $messages ){
          $nom_1 = $entry->fields;
          ...
       }
    }

     

    #2387378
    flexi2202
    Participant
    Chevalier WordPress
    132 contributions

    merci pour la reponse

    oui juste j ai oublie d ajouter ce plugin “Everest Forms” a ma liste

    en effet la table *_evf_entries apparaît bien dans ce plugin

    j’ai lancer ma requête et la réponse que j ai reçu est simplement ce message de wordpress

    La publication a échoué.

    je viens de tester le code corrigé mais de nouveau je reçois l erreur de wordpress

    La publication a échoué.

    #2387407
    stephan_b
    Participant
    Padawan WordPress
    52 contributions

    Où se trouve ce code?

    Le message “La publication a échoué” signifie qu’il y a une erreur lors de l’enregistrement d’une publication. Est-ce que cela se passe dans la page où il y a ce code?

    Sans ce code, la publication fonctionne?

    Vous avez accès au error_log de PHP? Ça peut aider.

    C’est difficile de poser un diagnostic sans avoir toutes les infos

    #2387412
    flexi2202
    Participant
    Chevalier WordPress
    132 contributions

    Merci pour la réponse

    voici comment je procède

    j utilise le plugin PHP Code Snippets

    je place ce code dans un shordcode  avec le plugin

    et ensuite j intègre le code court a une nouvelle page avec juste un titre que je donne a la page

    donc sur ma page il n y a que ce shordcode qui contient la requête et un titre

    j effectue la mise ajour de la page et a ce moment il y a ce message qui apparaît

    mais sans ce shordcode la mise a jour de cette page fonctionne juste avec  un titre fonctionne

    je le trouve ou cet acces au error_log de php ?

    oui je comprends qu il faut un maximum de renseignement …

    un grand merci pour l aide

    d autant plus que ce monde de wordpress est nouveau pour moi

    je viens de trouver un message d erreur

    Détails de l’erreur
    ======================
    Une erreur de type E_PARSE a été causée dans la ligne 7 du fichier /home/u434600775/domains/pecheperle.be/public_html/testpeche3/wp-content/plugins/insert-php-code-snippet/shortcode-handler.php(97) : eval()’d code. Message d’erreur : syntax error, unexpected ‘…’ (T_ELLIPSIS)

    • Cette réponse a été modifiée le il y a 1 mois et 1 semaine par flexi2202.
    #2387414
    flexi2202
    Participant
    Chevalier WordPress
    132 contributions

    je viens de trouver

    c était les 3 petits point a la ligne 7 du code

    je viens donc de rectifier le code

    mais sur la page il n y a que le titre lorsque je l affiche

    <?php		 
    	$sql = $wpdb->prepare("SELECT fields,entry_id FROM wp_evf_entries ");
    	$messages = $wpdb->get_results($sql);
    	if ( $messages ){
       foreach ( $entry as $messages ){
          $nom_1 = $entry->fields;
    echo $nom_1 ;
            }
    }

    pourtant il y a bien quelque chose dans la table voir print screen

     

    • Cette réponse a été modifiée le il y a 1 mois et 1 semaine par flexi2202.
    • Cette réponse a été modifiée le il y a 1 mois et 1 semaine par flexi2202.
    Fichiers joints :
    Vous devez être connecté pour voir les fichiers joints.
    #2387434
    stephan_b
    Participant
    Padawan WordPress
    52 contributions

    c était les 3 petits point a la ligne 7 du code 👍

    Essayez-ça:

    <?php		 
    	$sql = $wpdb->prepare("SELECT fields,entry_id FROM wp_evf_entries ");
    	$messages = $wpdb->get_results($sql);
    	if ( $messages ){
       foreach ( $entry as $messages ){
          $json = $entry->fields;
          $myarray = json_decode($json, true);
    			var_dump($myarray);
        }
    }

    Comme $entry->fields est en json, on le transforme en tableau pour pouvoir le lire.

    #2387438
    flexi2202
    Participant
    Chevalier WordPress
    132 contributions

    Merci pour le code

    mais c est comme hier il n y a que le titre qui s’affiche

    #2387453
    stephan_b
    Participant
    Padawan WordPress
    52 contributions

    Ca me semble bizarre.

    C’est vraiment pas possible de voir le site?

    Je peux voir une copie d’écran de la page?

    #2387454
    flexi2202
    Participant
    Chevalier WordPress
    132 contributions

    merci pour ton aide

    si bien sur

    mais je suis occupé a travailler dessus , donc ne pas faire attention a la présentation ect…

    je te donne le lien ou ca sa ce passe

    ht*ps://pecheperle.be/testpeche3/afficher-formulaire-php/

     

     

    #2387463
    dwade75
    Participant
    Initié WordPress
    15 contributions

    Hello

    Je pense que l’erreur vient du fait que tu as inversé la variable dans le foreach

    <?php		 
    	$sql = $wpdb->prepare("SELECT fields,entry_id FROM wp_evf_entries ");
    	$messages = $wpdb->get_results($sql);
    	if ($messages){
       foreach ($messages as $entry){
          $json = $entry->fields;
          $myarray = json_decode($json, true);
    			var_dump($myarray);
        }
    }

    si tu as encore des erreurs, peux-tu nous faire un var_dump de message juste avant le if (messages)

     

    • Cette réponse a été modifiée le il y a 1 mois et 1 semaine par dwade75.
    • Cette réponse a été modifiée le il y a 1 mois et 1 semaine par dwade75.
    #2387466
    flexi2202
    Participant
    Chevalier WordPress
    132 contributions

    bonsoir

    merci pour la correction

    et enfin quelque chose est retourne

    afficher formulaire php
    array(4) { ["lVizlNhYus-1"]=> array(5) { ["name"]=> string(4) "Name" ["value"]=> string(4) "dsds" ["id"]=> string(12) "lVizlNhYus-1" ["type"]=> string(4) "text" ["meta_key"]=> string(9) "name_9396" } ["XYnMdkQDKM-3"]=> array(5) { ["name"]=> string(5) "Email" ["value"]=> string(11) "sdds@qq.com" ["id"]=> string(12) "XYnMdkQDKM-3" ["type"]=> string(5) "email" ["meta_key"]=> string(10) "email_5780" } ["xJivsqAS2c-2"]=> array(5) { ["name"]=> string(7) "Subject" ["value"]=> string(3) "dsd" ["id"]=> string(12) "xJivsqAS2c-2" ["type"]=> string(4) "text" ["meta_key"]=> string(12) "subject_2114" } ["YalaPcQ0DO-4"]=> array(5) { ["name"]=> string(7) "Message" ["value"]=> string(5) "dsdsd" ["id"]=> string(12) "YalaPcQ0DO-4" ["type"]=> string(8) "textarea" ["meta_key"]=> string(12) "message_2915" } } array(2) { ["pypK2dv3oo-1"]=> array(5) { ["name"]=> string(7) "Prénom" ["value"]=> string(4) "ddfd" ["id"]=> string(12) "pypK2dv3oo-1" ["type"]=> string(10) "first-name" ["meta_key"]=> string(12) "prénom_1795" } ["2CU5PPOaX2-2"]=> array(5) { ["name"]=> string(3) "Nom" ["value"]=> string(9) "dfdfdfdfd" ["id"]=> string(12) "2CU5PPOaX2-2" ["type"]=> string(9) "last-name" ["meta_key"]=> string(8) "nom_8480" } }

    #2387473
    pasglop
    Participant
    Chevalier WordPress
    340 contributions

    Cette requête va générer des notices (pour le moment, voir dans ton debug.log). En effet, wpdb->prepare doit utiliser des placeholders : https://developer.wordpress.org/reference/classes/wpdb/prepare/

    #2387523
    flexi2202
    Participant
    Chevalier WordPress
    132 contributions

    Merci pour la réponse

    mais comme je débute avec wordpress j ai du configurer le fichier config.php

    de cette façon

    1. Ouvrez votre fichier  wp-config.php et remplacez cette ligne :
      define('WP_DEBUG', false);
      

      avec ces 3 lignes :

      define('WP_DEBUG', true);
      define('WP_DEBUG_LOG', true);
      define('WP_DEBUG_DISPLAY', false);
      

      Si la première ligne n’est pas déjà présente dans votre wp-config.php, ajoutez simplement les 3 lignes.

    2. Sauvegardez le fichier, retournez à WordPress et essayez de faire ce que vous faisiez quand le problème s’est produit au début.

      Une fois cela fait, un fichier nommé debug.log apparaîtra dans le dossier /wp-content de votre installation WordPress (vous devrez peut-être rafraîchir l’affichage du dossier dans votre client FTP).

      mon soucis c est que je n ai pas de fichier debug./log de crée

     

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