Requete sql

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] Requete sql

    Bonjour,

    J'ai un petit problème de requête SQL dans RSFORM pour poser le tableau

    Travail sur un serveur en localhost (sécurité, sécurité) Création logiciel patient:
    système : Joomla 3.7.5
    Module : RSForm Pro : 1.52.14

    Mon problème c'est que je veux récupéré la table __catégorie de ma base SQL a fin que je puisse sélectionner celle-ci dans une liste déroulante et l'afficher directement dans mon formulaire ce qui permettra d’enregistré celui-ci dans le bon patient car une catégorie = le nom d'un patient.

    pour faire ceci RSForm dispose d'une option script PHP ou l'on peux code directement ce que l'on veux.

    J'ai donc intégrer une liste déroulante vierge dans mon formulaire et mis mon script PHP

    Je pense que mon problème viens de cette ligne car sql et un de mais point faible

    $db->setQuery("SELECT your_value, your_label FROM #__your_table");

    Code PHP:
    //déclenchement du script
    <code>

    // Prépare le tableau vide
    $items = array();

    // Obtenez une connexion db.
    $db JFactory::getDbo();

    // Créez un nouvel objet de requête..
    $query $db->getQuery(true);

    // option pour selctionner dans l'item "Veuillez sélectionner".
    $items[] = "|Please Select[c]";
     
    // Exécutez la requête SQL et conservez-la en $results
    $db->setQuery("SELECT your_value, your_label FROM #__your_table");
    $results $db->loadObjectList();
     
    // Maintenant, nous devons convertir les résultats en un RSForm lisible! Format Pro.
    // Le champ Objets acceptera les valeurs dans ce format:
    // Valeur à être stockée | valeur à afficher
    //Par exemple. M | T-shirt de taille M

    foreach ($results as $result) {
      
    $value $result->your_value;
      
    $label $result->your_label;
      
    $items[] = $value.'|'.$label;
    }
     
    // Les valeurs multiples sont séparées par de nouvelles lignes
    $items implode("\n"$items);
     
    // Maintenant, nous devons retourner la valeur sur le champ
    return $items;
    </
    code
    Quelqu'un pourrait il m’éclaire le citron car l'acide qu'il contient ceux transforme en sucre quand il voie du sql

    En vous remercient par avance.

    Fragk
    Dernière édition par Fragk à 04/09/2017, 19h53

  • #2
    Re : Requete sql

    Bonjour

    Je cherche à récupérer les catégories pour l'afficher dans une liste déroulante afin de sélectionner une catégorie pour enregistrer mon formulaire dans la bonne catégorie en tant qu'article.

    Dans ma forme, j'ai mis un élément de liste déroulante que j'ai nommé "select", je l'ai mappé à "catid (int unsigned) => {Select: value}"

    Et j'ai mis mon script

    Code:
    // <code>
    $ Db = JFactory :: getDBO ();
    $ Db-> setQuery ("SELECT` id`, `title` FROM #__categories");
    $ Rez = $ db-> loadObjectList ();
    $ Items = "| Sélectionnez ... \ n";
    Foreach ($ rez comme $ r) {
    $ Items. = $ R-> title. "|". $ R-> id. "| $. $ R-> titre." \ N ";
    }
    Garniture de retour ($ articles);
    // </ code>
    Et il n'y a rien de mal, mais la liste reste vide !!!!!

    Commentaire


    • #3
      Re : Requete sql

      Salut

      Est ce que c'est une erreur de transcription, certaines variables sont ecrites en majuscule et en minuscule? par ex ( $Rez et $rez )
      que dit l'utilisation de
      print_r($Rez);


      Je reviens sur ton select, car il y a des espaces un peu partout
      SELECT` id`, `title` FROM #__categories c'est faux ( espace entre la quote et id )

      select `id`, `title` FROM #__categories est bon.
      Dernière édition par Wismer à 26/08/2017, 10h38

      Commentaire


      • #4
        Re : Requete sql

        Donc effectivement c bien une erreur de transcription

        voici le code original non transcrit

        Code:
        //<code>
        $db = JFactory::getDBO();
        $db->setQuery("select `id`,`title` FROM #__categories");
        $rez = $db->loadObjectList();
        $items = "|select...\n";
        foreach($rez as $r){
        	$items .= $r->title."|".$r->id." | ".$r->title."\n";
        }
        return trim($items);
        //</code>
        en outre merci pour la correction de syntaxe mais mon item select reste toujours vide, je ne comprend pas pourquoi car le code et bon

        Je me connecte avec:
        $db = JFactory::getDBO();

        je fait dans la table récupérer mais donnée:
        $db->setQuery("select `id`,`title` FROM #__categories");
        $rez = $db->loadObjectList();

        et j'affiche mais donnée dans la liste déroulante
        $items = "|select...\n";
        foreach($rez as $r){
        $items .= $r->title."|".$r->id." | ".$r->title."\n";

        et j'ai mapper mon item select catid (int unsigned) => {select:caption}

        mais sa reste toujours vide !

        Commentaire


        • #5
          Re : Requete sql

          [QUOTE=Fragk;1136038]Donc effectivement c bien une erreur de transcription

          voici le code original non transcrit

          Code:
          //<code>
          
          $rez = $db->loadObjectList();
          
          //</code>
          a remplacer par loadrowlist.....
          test a faire juste en dessous de $rez :
          aujouter var_dump($rez);

          vu l 'instruction utilisée loadobjectlist, un var_dump sur $rez devrais donner :
          [0] => stdClass Object ( [id] => 1,[category] => nom de la categorie)
          [1] => stdClass Object ( [id] => 2,[category] => nom de la categorie)
          et pour acceder au contenu de l objet: $rez[0]->id;

          la il te manques une clef pour definir l'index de ton tableau......

          Dernière édition par lefabdu51 à 27/08/2017, 10h41

          Commentaire


          • #6
            Re : Requete sql

            Re bonsoir dsl du retard je viens de rentré du taff

            alors je suis pas sur d'avoir tout bien compris mais j'ai tester pas mal de possibilité avec ce que vous m'avais expliquer le retour
            la liste reste désespérément vide mais :


            Code:
            $rez = $db->loadrowlist();
            cela me donne une multitude d'erreurs

            par contre si je mais

            [code]
            $db = JFactory::getDBO();
            $db->setQuery("SELECT `id`, `title` FROM #__categories");
            $rez = $db->loadObjectList();
            var_dump($rez);
            $items[] = "|Select...";
            foreach($rez as $r){
            $items[] = $r->id."|".$r->title;
            }
            return implode("\n",$items);
            //</code>



            J'ai une autre question pourquoi on ne peux pas récupérer tout simplement le code qui est implanter dans l'article et qui nous donne la liste déroulante avec les nom des catégorie ? plutôt que de se reconnecter a la base sql etc... ???
            Dernière édition par Fragk à 29/08/2017, 08h03

            Commentaire


            • #7
              Re : Requete sql

              Bonjour je reviens vers vous pour donner la solution

              Donc pour avoir les catégories qui s'affiche dans les formulaires crée par RSForm afin de pouvoir choisir dans quelle catégorie enregistre le formulaire en temps qu'articles et non en tant qu’email il suffit pour cela de :

              1 crée dans le formulaire une liste déroulante avec les pour nom "Select" sans les " | dans légende "Catégorie"
              2 dans la section Eléments mettre le code ci-dessous et enregistré. (Bien garder la balise //<code> sinon ça ne fonctionne pas.)

              Code:
              //<code>
              $db = JFactory::getDBO();
              $db->setQuery("SELECT `id`, `title` FROM #__categories");
              $rez = $db->loadObjectList();
              $items[] = "|Select...";
              foreach($rez as $r){
                  $items[] = $r->id."|".$r->title;
              }
              return implode("\n",$items);
              //</code>
              3 aller dans les propriétés et aller dans Scripts PHP et entré encore une fois le même morceau de code. (Bien garder la balise //<code> sinon ça ne fonctionne pas).

              Code:
              //<code>
              $db = JFactory::getDBO();
              $db->setQuery("SELECT `id`, `title` FROM #__categories");
              $rez = $db->loadObjectList();
              $items[] = "|Select...";
              foreach($rez as $r){
                  $items[] = $r->id."|".$r->title;
              }
              return implode("\n",$items);
              //</code>
              4 - aller dans mappage dans votre requête et mettre dans
              catid (int unsigned) => {Select:value} ceci est en fonction de ce que vous mettrez comme dénomination !

              Voilà merci as tous pour votre coup de mains et j’espère que cela pourras servie a d'autre

              Commentaire

              Annonce

              Réduire
              Aucune annonce pour le moment.

              Partenaire de l'association

              Réduire

              Hébergeur Web PlanetHoster
              Travaille ...
              X