[Joomla 1.7.3]Insertion de champs dans une base de données

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

  • [RÉGLÉ] [Joomla 1.7.3]Insertion de champs dans une base de données

    Bonjour à tous,

    Ayant appris les bases de joomla, je souhaiterai créer un module. Pour le moment je souhaite faire un truc simple : récupérer le contenu d'un formulaire puis l'insérer dans la base de données.

    Le soucis c'est que visiblement il me manque une étape pour l'insertion dans la base. J'ai d'ailleurs eu du mal à trouver de la doc sur le net pour le développement joomla avec la version 1.7.

    Voici le code que j'ai :
    Code HTML:
    <form method="POST" action ="<?php echo JURI::current(); ?>">
    	<p><label> Age :</label></p>
    	<p><input type="text" name="age"></p>
    	<p><input type="submit" value="Envoyer" /></p>
    </form>
    Code PHP:
    <?php
    if (isset($_POST['age']))
    {
        
    add_Age_row($_POST['age']);
    }
    ?>
    Voici la fonction add_Age_row que j'ai fait de deux façons :
    La première avec JFactory
    Code PHP:
    function add_Age_row($label)
    {
    $db = &JFactory::getDBO();
    $query "INSERT INTO `#__module_age` (`id_age`,`label_age`) VALUES ($label);";
    $db->setQuery$query );
    $db->query();   

    La seconde avec mysql :
    Code PHP:
    function add_Age_row($label)
    {
    mysql_connect("localhost""root""") or die(mysql_error());
    mysql_select_db("joomla_fr") or die(mysql_error());
    mysql_query("INSERT INTO module_age ('label_age') VALUES('".$label."') "or die(mysql_error()));  

    -A savoir qu'aucune des deux insertions ne fonctionne alors que je n'ai pas de message d'erreur.

    -La valeur du $_POST est correctement récupérée

    Je remercie d'avance la/les personnes qui pourront m'aider là dessus. Je cherche vraiment la solution pour ce problème, j'ai vu qu'il y avait des plugin de formulaire mais je n'ai pas envie de les utiliser.

    Tex

  • #2
    Re : [Joomla 1.7.3]Insertion de champs dans une base de données

    Salut,
    déjà dans
    function add_Age_row($label)
    {
    $db = &JFactory::getDBO();
    $query = "INSERT INTO `#__module_age` (`id_age`,`label_age`) VALUES ($label);";
    $db->setQuery( $query );
    $db->query();
    }
    Tu n'as pas besoin de 'id_age', s'il n'y ai pas il incrémentera tout seul l'id, si c'est paramétré en AUTO_INCREMENT dans ta BDD

    Et pour la $query, essaye quelques chose comme ceci pour plus de propreté:
    $query = 'INSERT INTO #__module_age (label_age) VALUES ("'.$label.'");';
    Je ne pense pas que sa résolve le problème mais parfois mysql réagi mal si on met pas du texte entre "" du moins dans la théorie il faurai ces guillemets.

    Commentaire


    • #3
      Re : [Joomla 1.7.3]Insertion de champs dans une base de données

      Hello

      Tout d'abord merci pour la réponse.

      J'ai modifié les lignes que tu m'as indiqué, rien n'y fait.

      J'ai essayé ça :
      Code PHP:
      <?php
      $query 
      "INSERT INTO #__module_age"
                  
      ."SET "
                  
      ."`label_age` = ".$label;
      ?>
      Mais ça ne change pas non plus.

      A savoir que la page Hello est un article qui contient un module que j'ai chargé avec {loadposition myposition}

      Est-ce vraiment possible de faire ça ? Sa fait un moment que je planche dessus j'ai rien trouvé en insert database sur internet :'|

      Commentaire


      • #4
        Re : [Joomla 1.7.3]Insertion de champs dans une base de données

        J'ai d'ailleurs eu du mal à trouver de la doc sur le net pour le développement joomla avec la version 1.7.
        C'est un peu normal, puisqu'il s'agit d'une version obsolète. Il n'y a plus aucun support ni mises à jour depuis quelques mois.
        Lorsque l'on se cogne la tête contre un pot et que cela sonne creux, ça n'est pas forcément le pot qui est vide.
        Confucius

        Commentaire


        • #5
          Re : [Joomla 1.7.3]Insertion de champs dans une base de données

          Bonjour,
          Code PHP:
          <?php
          $query 
          "INSERT INTO #__module_age"
                      
          ."SET "
                      
          ."`label_age` = ".$label;
          ?>
          Dans un INSERT en base de données, on utilise VALUES (), et certainement pas SET qui lui fait partie de la commande UPDATE.

          Sa fait un moment que je planche dessus j'ai rien trouvé en insert database sur internet
          Hum, tu n'as certainement pas cherché des masses... http://dev.mysql.com/doc/index.html est on ne peut plus complet sur la syntaxe des diverses commandes.

          A ma connaissance, SQL pour les nuls en 10 minutes, ça n'existe pas, et n'existera certainement jamais. Il faut prendre le temps de LIRE les documentations officielles.
          Pas de demande de support par MP.
          S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

          Commentaire


          • #6
            Re : [Joomla 1.7.3]Insertion de champs dans une base de données

            Hello,

            Tout d'abord merci pour les réponses.

            Faisant actuellement un stage sur joomla je suis pour le moment contraint d'utiliser la version 1.7.3 car le but est d'améliorer un site existant.

            En ce qui concerne mon niveau en matière de SQL, j'ai eu beaucoup de cours SQL Oracle, qui est relativement différent de MySQL au niveau de la syntaxe.

            Cependant, le lien que tu m'as donné jisse03 est certes intéressant mais reprend tout de même ce que j'ai insinué avec SET un peu plus haut. De plus j'ai utilisé cette syntaxe, qui en farfouillant le module JComment

            Un exemple de cette syntaxe est disponible ici : http://dev.mysql.com/doc/refman/4.1/en/insert.html

            Est-ce donc un problème de version ? Est-ce que je pourrais utiliser un module joomla 1.6 (ou antérieure) dans une version 1.7 ?

            Merci d'avance

            Tex

            Commentaire


            • #7
              Re : [Joomla 1.7.3]Insertion de champs dans une base de données

              Envoyé par t3x4s Voir le message
              Faisant actuellement un stage sur joomla je suis pour le moment contraint d'utiliser la version 1.7.3 car le but est d'améliorer un site existant.
              La version 1.7 n'est plus supportée, une mise à jour vers 2.5 est indispensable, d'autant plus qu'il s'agit d'améliorer l'existant, la 2.5 a corrigé de nombreux bugs de 1.7 et comblé des failles de sécurité. Pratiquement toute sles extensions qui tournaient en 1.7 fonctionnent aussi bien en 2.5.

              Envoyé par t3x4s Voir le message
              En ce qui concerne mon niveau en matière de SQL, j'ai eu beaucoup de cours SQL Oracle, qui est relativement différent de MySQL au niveau de la syntaxe.
              Oui, hormises les commandes SQL de base, Oracle et MySQL ont une syntaxe relativement différente.

              Envoyé par t3x4s Voir le message
              Cependant, le lien que tu m'as donné jisse03 est certes intéressant mais reprend tout de même ce que j'ai insinué avec SET un peu plus haut. De plus j'ai utilisé cette syntaxe, qui en farfouillant le module JComment

              Un exemple de cette syntaxe est disponible ici : http://dev.mysql.com/doc/refman/4.1/en/insert.html

              Est-ce donc un problème de version ? Est-ce que je pourrais utiliser un module joomla 1.6 (ou antérieure) dans une version 1.7 ?
              L'utilisation de SET dans un INSERT est possible, mais déconseillée. De plus elle échoue si le serveur MySQL est configuré en strict SQL 99.
              Attention aux documentations. Le lien que tu utilises concerne les très anciennes version 3.23, 4.0 et 4.1 de MySQL. De nombreuses modifications sont survenues depuis cette époque. Les versions stables actuelles les plus utilisées sont 5.1 et 5.5.

              En héorie, les extensions écrites pour 1.6 peuvent tourner sous Joomla! 2.5 (sauf certaines dont l'écriture a été réalisée sans respecter correctement les APIs Joomla!).
              Par contre, les extensions Joomla! 1.5 doivent être adaptées et converties.
              Pas de demande de support par MP.
              S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

              Commentaire


              • #8
                Re : [Joomla 1.7.3]Insertion de champs dans une base de données

                Salut,

                merci pour ces précisions. J'espère que mon maître de stage sera compréhensif à ce sujet.

                Sa me rend enthousiaste car la communauté et les tutos sur 1.7 étaient un peu morts :/
                D'autant plus qu'il y aura certainement plus de personnes et que j'ai (enfin) trouvé un super tutorial pour le développement MVC ici : http://docs.joomla.org/Developing_a_...for_Joomla!2.5

                Je passe le sujet en résolu,

                Bonne journée

                Tex

                Commentaire

                Annonce

                Réduire
                Aucune annonce pour le moment.

                Partenaire de l'association

                Réduire

                Hébergeur Web PlanetHoster
                Travaille ...
                X