Connection base avec Jumi

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

  • [RÉGLÉ] Connection base avec Jumi

    Bonjour, je sais que ce sont des questions récurrentes, mais je ne m'en sors pas (aucune connaissances en Php5 et vraiment trop peu en joomla).
    J'ai fais un copier / coller de mon code Php4, mis mes recettes sous la base joomla avec le préfixe qui va bien.
    Pour mes petits essais, j'ai mis mon accès à la base sur la nouvelle page. Tout va très bien... Sauf que ce n'est pas du tout comme çà que ça se pratique.
    Après test, la connexion à la base est bonne, c'est ensuite que ça ne va plus au niveau de loadObjectList(); je ne suis pas sûr de la bonne classe. Si vous voyez le soucis, je vous en remercie. A ce propos... Est-ce que mysql_close(); est utile?
    <?php
    $database =& JFactory::getDBO();
    $rq = "SELECT DISTINCT nom FROM #__recettes ORDER BY nom;";
    $database->setQuery($rq);
    $nb = $database->loadObjectList(); // j'ai ici essayé pas mal de scripts sans même savoir ce que j'écrivais :-)
    echo"<div class=\"gmnoprint\"><legend>Actuellement, il y a $nb recettes de truite en ligne.</legend><br>";
    //Creation du formulaire
    $query=@mysql_query("select DISTINCT nom FROM #__recettes");
    if ($query) { ?>
    <form action="<?php $PHP_SELF;?>" method="post">
    <?php print "<select name=\"choix\"> \n";
    while ($array=@mysql_fetch_array($result))
    if ($choix == $array["nom"]) {
    print "<option value=\"".$array["nom"]."\" selected>".$array["nom"]."</option>\n";
    } else {
    echo "<option value=\"".$array["nom"]."\">".$array["nom"]."</option>\n";
    }
    print "</select>\n";
    print "<p></p>";
    print "<button class=\"button validate\" type=\"submit\">Envoyer</button></form>\n";
    }
    //Affichage Recette
    if ($_POST['choix']) {
    $choice = $_POST['choix'] ;
    $choice = htmlspecialchars($choice);
    $affich=@mysql_query("select DISTINCT id_truites, nom, plat FROM #_recettes WHERE nom='$choice'");
    $affich_array=@mysql_fetch_array($affich);
    $nom = $affich_array["nom"];
    $plat =wordwrap($affich_array["plat"], 85, "\n", true) ;
    echo " <h1>$nom</h1> <p></p> $plat ";
    }
    // fermeture de la connection
    mysql_close();
    ?>

  • #2
    Re : Connection base avec Jumi

    Bonsoir, je suis content de vous annoncer que le Pr n'est pas fini mais que j'ai résolu la première partie dur script:
    $db =& JFactory::getDBO();
    $rq = "SELECT COUNT(*) FROM #__recettes ORDER BY nom";
    $db->setQuery($rq);
    $nb = $db->loadResult();
    echo"<div class=\"gmnoprint\"><legend>Actuellement, il y a $nb recettes de truite en ligne.</legend><br>";
    Me reste plus maintenant que la liste déroulante et l'affichage... C'est la liste que je redoute!
    Si vous pouvez déjà un peu me conseiller :-) (il y a 534 recettes de truite, faut les aimer hein!)

    Commentaire


    • #3
      Re : Connection base avec Jumi

      Bonsoir, après le Pb du nombre de recettes, j'ai pu affiché le SELECT:
      //affichage du select
      $db =& JFactory::getDBO();
      $query = " SELECT nom FROM #__recettes ORDER BY `nom` ASC";
      $db->setQuery($query);
      $result = $db->loadObjectList();
      if(count($result)) {
      ?>
      <form action="<?php $PHP_SELF;?>" method="post">
      <?php print "<select name=\"choix\"> \n";
      foreach($result as $r) {
      echo "<option value=\" $r->nom \"selected> $r->nom </option>\n";
      }
      print "</select>\n";
      print "<p></p>";
      print "<button class=\"button validate\" type=\"submit\">Envoyer</button></form>\n";
      }
      Maintenant mon soucis est d'afficher la requête, j'ai donc fais ça:
      //Affichage Recette
      if ($_POST['choix']) {
      $choice = JRequest::getVar('choix');
      $db =& JFactory::getDBO();
      $rec = "SELECT nom, plat FROM #__recettes WHERE nom = ".$choice;
      $db->setQuery($rec);
      $resultat=$db->loadAssoc();
      echo" $rec <br>"; // La variable passe bien, mais je n'arrive pas à trouver la classe de JFactory pour afficher ma requête, rien ne fonctionne, si franchement, vous pouvez me guider!
      echo $row['nom'] ." <p></p> ". $row['plat']."<br />";
      }

      Commentaire


      • #4
        Re : Connection base avec Jumi

        Bonjour, désolé de pleurer une aide, mais je ne m'en sort pas, j'ai bien lu des centaines de post, fouillé les entrailles de Google, mais rien ne s'affiche, essayé 36 codes... Je ne pensais pas galérer autant! voici mes dernières ligne:
        //Affichage Recette
        if ($_POST['choix']) {
        $choice = JRequest::getVar('choix');
        $base =& JFactory::getDBO();
        $rec = "SELECT # FROM #__recettes WHERE nom = ".$choice;
        $base->setQuery($rec);
        $rows=$base->loadObjectList();
        echo" $rec"; //le résultat de sélection affiche bien ma variable SELECT # FROM #__recettes WHERE nom = Ma recette
        foreach($rows as $value) {
        echo "$value->nom " ;
        echo "<p></p> $value->plat " ;
        }
        }

        Commentaire


        • #5
          Re : Connection base avec Jumi

          J'ai la joie de vous annoncer que mon Pb est fini :-)
          Pour le POST, il fallait envoyé l'ID de la table, non un autre champ!!!
          En rappel, je compte le nombre de champs, je mets le titre de recettes dans une liste de sélection, je récupère ensuite l'id de la recette et affiche celle-ci. Je vous met le code si ça peux aider qq'un un jour et si vous voyez quelques chose qui ne va pas ds le code, merci de me le faire savoir.
          <?php
          $db =& JFactory::getDBO();
          $rq = "SELECT COUNT(*) FROM #__recettes";
          $db->setQuery($rq);
          $nb = $db->loadResult();
          echo"<div class=\"gmnoprint\"><legend>Actuellement, il y a $nb recettes de truite en ligne.</legend><br>";
          //affichage du select
          $db =& JFactory::getDBO();
          $query = " SELECT id_truites , nom FROM #__recettes ORDER BY `nom` ASC";
          $db->setQuery($query);
          $result = $db->loadObjectList();
          if(count($result)) {
          ?>
          <form action="<?php $PHP_SELF;?>" method="post">
          <?php print "<select name=\"choix\"> \n";
          foreach($result as $r) {
          echo "<option value=\" $r->id_truites \"> $r->nom </option>\n";
          }
          print "</select>\n";
          print "<p></p>";
          print "<button class=\"button validate\" type=\"submit\">Envoyer</button></form>\n";
          }
          //Affichage Recette
          if ($_POST['choix']) {
          $choice = JRequest::getVar('choix');
          $db =& JFactory::getDBO();
          $query = "SELECT * FROM #__recettes WHERE id_truites = ".$choice;
          $db->setQuery($query);
          $result = $db->loadObjectList();
          if(count($result)) {
          foreach($result as $r) {
          $nom = $r->nom;
          $plat = $r->plat;
          $plat =wordwrap($plat, 85, "\n", true) ;
          echo"<br> <h1>$nom</h1> <p></p> $plat"; }
          }
          }
          ?>

          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
          Travaille ...
          X