loadResult

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

  • [RÉGLÉ] loadResult

    Bonjour je suis entrain de développer un composant mais je bloc sur un petit problème

    j'ai un bout de code en dure qui fonctionne très bien :
    Code:
    include("fonctionBD.php");
    $db = connect_bd();
    mysql_select_db('joomla', $db);
    
    // on fait une boucle qui va faire un tour pour chaque enregistrement
    
    $result = mysql_query("SELECT * FROM test1_users");
    $clients = array();
    while ( $row = mysql_fetch_array($result) ) {
        $clients[] = $row['username'];
    }
    echo "<ul>\n";
    foreach ($clients as $client) {
        $test = $_REQUEST['client'];
        if (stripos($client, $test) === 0) {
            echo "<li>$client</li>\n";
        }
    }
    echo "</ul>";
    Je voudrai le faire tourner en "souple" pour que je ne change pas le test1 de ma table ou que je ne sois pas obliger de changer le nom de ma base pour qu'il tourne sur une autre installation.

    Donc j'ai commancer a taper ces quelque ligne de code
    Code:
    include("fonctionBD.php");
    jimport( 'joomla.database.database.mysql' );
    $db =& JFactory::getDBO();
    $query = "SELECT * FROM #__users";
    $db->setQuery($query);
    $username = $db->loadResult(2);
    mais je ne sais pas comment remplir la liste du while avec le loadresult() ?

    Si quelqu'un a une solution je suis preneur.
    Merci d'avance
    PS je début en joomla
    Dernière édition par gandalf91 à 25/08/2011, 13h46

  • #2
    Re : loadResult

    Bonjour,
    mais je ne sais pas comment remplir la liste du while avec le loadresult()
    sauf erreur le loadresult retourne la première valeur de la première colonne, donc ça va être dur...
    Avec un loadObjectList ça devrait aller mieux.
    Schtroumpfe toi le Schtroumpf t'aidera.
    Je ne schtroumpfe pas aux demandes de schtroumpf par MP.

    Commentaire


    • #3
      Re : loadResult

      Voila j'ai tester ça:
      Code:
      $db =& JFactory::getDBO();
      $query = "SELECT * FROM #__users";
      $db->setQuery($query);
      $username = $db->loadObjectList();
      
      // on fait une boucle qui va faire un tour pour chaque enregistrement
      
      $clients = array();
      while ( $row = mysql_fetch_array($username) ) {
          $clients[] = $row['username'];
      }
      echo "<ul>\n";
      foreach ( $clients as $client) {
          $test = $_REQUEST['client'];
          if (stripos($client, $test) === 0) {
              echo "<li>$client->username</li>\n";
          }
      }
      echo "</ul>";
      Mais rien de retourner

      mais j'ai tester ça:

      Code:
      $db =& JFactory::getDBO();
      $query = "SELECT * FROM #__users";
      $db->setQuery($query);
      $username = $db->loadObjectList();
      echo "<ul>\n";
      foreach ( $username as $client) {
              echo "<li>$client->username</li>\n";
      }
      echo "</ul>";
      J'ai bien ma liste.
      Je suis sur que le souci vien de while ( $row = mysql_fetch_array($result) ) esquil y a pas une autre fonction que mysql_fetch_array pour itérer sur les entre du tableau ?
      Dernière édition par gandalf91 à 22/08/2011, 14h21

      Commentaire


      • #4
        Re : loadResult

        Re,
        Je fait mon while c'est bien ca ?
        oui
        Code PHP:
        $users $db->loadObjectList();
        foreach (
        $users as $user) {
                echo 
        $user->id."<br/>" ;

        Schtroumpfe toi le Schtroumpf t'aidera.
        Je ne schtroumpfe pas aux demandes de schtroumpf par MP.

        Commentaire


        • #5
          Re : loadResult

          Ca affiche bien ma liste en direct mais pas dans mon select,
          Quand je tape la premiere lettre ça devrai normalement m'afficher la listes des entre qui commence par cette la lettre taper et la rien

          Commentaire


          • #6
            Re : loadResult

            Re,
            hein ? Ça n'a plus rien à voir avec la question posée, ou c'est moi qui yoyote ?
            Si tu veux remplir un select, il faut peut-être commence par respecter la syntaxe HTML du select ?
            C'est quoi ton code à ce stade ?
            Schtroumpfe toi le Schtroumpf t'aidera.
            Je ne schtroumpfe pas aux demandes de schtroumpf par MP.

            Commentaire


            • #7
              Re : loadResult

              Mon code stable pour remplir automatiquement mon select c'est celui la
              Code:
              include("fonctionBD.php"); $db = connect_bd(); mysql_select_db('joomla', $db);  // on fait une boucle qui va faire un tour pour chaque enregistrement  $result = mysql_query("SELECT * FROM test1_users"); $clients = array(); while ( $row = mysql_fetch_array($result) ) {     $clients[] = $row['username']; } echo "<ul>\n"; foreach ($clients as $client) {     $test = $_REQUEST['client'];     if (stripos($client, $test) === 0) {         echo "<li>$client</li>\n";     } } echo "</ul>";
              sur ma page j'ai un select qui ce remplie avec le code si-dessus.
              Jusqu'a la ca fonctionne mais si j'install mon module sur un autre site je dois modifier le nom de ma base et celui de la table car ecrie en dure
              donc j'ai fouiller et j'ai modifier le code pour que en cas d'install sur un autre joomla je n'ai pas a modifier le code
              donc j'ai fait ça
              Code:
              [FONT=monospace]
              $db =& JFactory::getDBO();
              $query = "SELECT * FROM #__users";
              $db->setQuery($query);
              $username = $db->loadObjectList();
              $clients = array();
              while ( $row = mysql_fetch_array($username) ) {
                  $clients[] = $row['username'];
              }
              echo "<ul>\n";
              foreach ( $clients as $client) {
                  $test = $_REQUEST['client'];
                  if (stripos($client, $test) === 0) {
                      echo "<li>$client</li>\n";
                  }
              }
              echo "</ul>";
              [/FONT]


              mais le souci c'est quand je fait appel a ce code j'ai un message d'erreur qui me dit :

              Warning: mysql_fetch_array() expects parameter 1 to be resource

              Donc voila je me demande si il y a pas moyen de remplacer le mysql_fetch_array pour ne plus avoir d'erreur

              Commentaire


              • #8
                Re : loadResult

                Re,
                tu ne mets pas ET un fetcharray et un foreach !
                Et les champs sont accessibles directement par $client->nom du champ comme dans mon exemple plus haut

                Code PHP:
                $users$db->loadObjectList();
                echo 
                "<ul>\n";
                foreach ( 
                $users as $user) {
                        echo 
                "<li>".$user->username."</li>\n";
                }
                echo 
                "</ul>"
                Schtroumpfe toi le Schtroumpf t'aidera.
                Je ne schtroumpfe pas aux demandes de schtroumpf par MP.

                Commentaire


                • #9
                  Re : loadResult

                  OK je test ça des demain matin je te tien au courant du bon fonctionnement
                  Encore merci pour le coup de main

                  Commentaire


                  • #10
                    Re : loadResult

                    Bonjour la question qui me vien a l'esprie ce matin
                    C'est comment je remplis mon array $clients avec ta methode ?
                    Car ta fonction marche très bien ces sur mais et oui y a un mais lol.
                    Je dois remplir l'array $clients pour que mon code fonctionne bien ces pour ca que de base il y avait un

                    while ( $row = mysql_fetch_array($users)) {
                    $clients[] = $row['username'];
                    }

                    Merci pour votre aide

                    Commentaire


                    • #11
                      Re : loadResult

                      Bonjour,
                      Je dois remplir l'array $clients pour que mon code fonctionne bien
                      pas au vu du code que tu donnes, en tout cas, puisque dans ce que l'on voit, $clients sert juste dans la boucle uivante à cracher les <li>.
                      Code PHP:
                      foreach ( $users as $user) {
                              
                      $clients[] = $user->username;

                      Schtroumpfe toi le Schtroumpf t'aidera.
                      Je ne schtroumpfe pas aux demandes de schtroumpf par MP.

                      Commentaire


                      • #12
                        Re : loadResult

                        Ok mon tableau ce remplis bien, plus de problème de ce côté la

                        Mais bon je penser que je pouvais resoudre mon problème juste en modifiant mon code au nioveau de loadResult du tout debut,
                        mais je me rend compte que mon problème est plus gros

                        Je vous explique mon proget:
                        J'ai une liste de clients que je veux pouvoir choisir par un select qui fair une recherche sur ma table et qui me resort les entres qui commance par ce que j'ai taper comme le moteur de recherche de google.

                        Quand je tape le nom du client ca me resot bien les informations que j'ai demander dans le formulaire.

                        Mais quand je tape juste une lettre la liste qui devrai s'afficher ne s'affiche pas.

                        Je penser que ca vener de mon probleme de base mais non le problème viens d'allieur.
                        Esque quelqu'un a un exemple de moteur de recherche type google qui fonctionne sous joomla 1.7

                        Merci d'avance

                        Commentaire


                        • #13
                          Re : loadResult

                          Re,
                          là il y a des choses :
                          Find extensions for your Joomla site in the Joomla Extensions Directory, the official directory for Joomla components, modules and plugins.
                          Schtroumpfe toi le Schtroumpf t'aidera.
                          Je ne schtroumpfe pas aux demandes de schtroumpf par MP.

                          Commentaire

                          Annonce

                          Réduire
                          Aucune annonce pour le moment.

                          Partenaire de l'association

                          Réduire

                          Hébergeur Web PlanetHoster
                          Travaille ...
                          X