[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
                1 sur 2 < >

                C'est [Réglé] et on n'en parle plus ?

                A quoi ça sert ?
                La mention [Réglé] permet aux visiteurs d'identifier rapidement les messages qui ont trouvé une solution.

                Merci donc d'utiliser cette fonctionnalité afin de faciliter la navigation et la recherche d'informations de tous sur le forum.

                Si vous deviez oublier de porter cette mention, nous nous permettrons de le faire à votre place... mais seulement une fois
                Comment ajouter la mention [Réglé] à votre discussion ?
                1 - Aller sur votre discussion et éditer votre premier message :


                2 - Cliquer sur la liste déroulante Préfixe.

                3 - Choisir le préfixe [Réglé].


                4 - Et voilà… votre discussion est désormais identifiée comme réglée.

                2 sur 2 < >

                Assistance au forum - Outil de publication d'infos de votre site

                Compatibilité: PHP 4.1,PHP4, 5, 6DEV MySQL 3.2 - 5.5 MySQLi from 4.1 ( @ >=PHP 4.4.9)

                Support Version de Joomla! : | J!3.0 | J!2.5.xx | J!1.7.xx | J!1.6.xx | J1.5.xx | J!1.0.xx |

                Version française (FR) D'autres versions sont disponibles depuis la version originale de FPA

                UTILISER À VOS PROPRES RISQUES :
                L'exactitude et l'exhaustivité de ce script ainsi que la documentation ne sont pas garanties et aucune responsabilité ne sera acceptée pour tout dommage, questions ou confusion provoquée par l'utilisation de ce script.

                Problèmes connus :
                FPA n'est actuellement pas compatible avec des sites Joomla qui ont eu leur fichier configuration.php déplacé en dehors du répertoire public_html.

                Installation :

                1. Téléchargez l'archive souhaitée : http://afuj.github.io/FPA/

                Archive zip : https://github.com/AFUJ/FPA/zipball/master

                2. Décompressez le fichier de package téléchargé sur votre propre ordinateur (à l'aide de WinZip ou d'un outil de décompression natif).

                3. Lisez le fichier LISEZMOI inclus pour toutes les notes de versions spécifiques.

                4. LIRE le fichier de documentation inclus pour obtenir des instructions d'utilisation détaillées.

                5. Téléchargez le script fpa-fr.php à la racine de votre site Joomla!. C'est l'endroit que vous avez installé Joomla et ce n'est pas la racine principale de votre serveur. Voir les exemples ci-dessous.

                6. Exécutez le script via votre navigateur en tapant: http:// www. votresite .com/ fpa-fr.php
                et remplacer www. votresite .com par votre nom de domaine


                Exemples:
                Joomla! est installé dans votre répertoire web et vous avez installé la version française du fichier FPA:
                Télécharger le script fpa-fr.php dans: /public_html/
                Pour executer le script: http://www..com/fpa-fr.php

                Joomla! est installé dans un sous-répertoire nommé "cms" et vous avez installé la version française du fichier FPA:
                Télécharger le script fpa-fr.php dans: /public_html/cms/
                Pour executer le script: http://www..com/cms/fpa-fr.php

                En raison de la nature très sensible de l'information affichée par le script FPA, il doit être retiré immédiatement du serveur après son utilisation.

                Pour supprimer le script de votre site, utilisez le lien de script de suppression fourni en haut de la page du script. Si le lien de suppression échoue pour supprimer le script, utilisez votre programme FTP pour le supprimer manuellement ou changer le nom une fois que le script a généré les données du site et le message publié sur le forum. Si le script est toujours présent sur le site, il peut être utilisé pour recueillir suffisamment d'informations pour pirater votre site. Le retrait du script empêche des étrangers de l'utiliser pour jeter un oeil à la façon dont votre site est structuré et de détecter les défauts qui peuvent être utilisé à vos dépends.
                Voir plus
                Voir moins

                Partenaire de l'association

                Réduire

                Hébergeur Web PlanetHoster
                Travaille ...
                X