We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 30897
    • 311 Posts
    Bonjour,

    C’est la première fois que j’essai d’appeler des informations dans une table sur une autre base MySQL et je coince un peu.

    Pour aller chercher les informations sur une autre base, je suis la documentation mais ensuite lorsque je lance ma requete SQL rien ne se passe, pourtant j’ai suivi les indications de la doc pour créer un snippet.

    Donc, je demande un peu d’aide pour créer un snippet assez simple qui va juste lancer une requete SQL sur une autre base de données et qui affiche les informations en HTML...

    En PHP, c’est simple mais en MODx... je n’y arrive pas. smiley

    Merci d’avance
      TylerD - In MODx we trust
      [Derni
      • 16732
      • 592 Posts
      Voila un snippet qui fonctionne wink
      <?php
      
      
      $modx->db2 = new DBAPI($host,$database, $uid,$pwd);
      $sql_query = 'SELECT id_lieu,societe FROM matable';
      $result = $modx->db2->query($sql_query);
      while($enr=mysql_fetch_array($result)) {
          $ouput .=  $enr["id_lieu"] ."-". $enr["societe"]."<br>";
      
      }
      return $ouput;
      ?>
      
      
        • 30897
        • 311 Posts
        Ok Merci, après quelques adaptations, je viens de parvenir à afficher le contenu que je veux. Merci beaucoup grin
          TylerD - In MODx we trust
          [Derni
          • 11975
          • 2,542 Posts
          Bon Laurentc a déjà répondu mais en voilà un autre quasi similaire avec affichage des données avec maketable

          <?php
          /***
          
          
          ***/
          	
          	$database_type = 'mysql';
          	$database_server = 'localhost';
          	$database_user = 'user';
          	$database_password = 'pass';
          	$dbase = '`mydb`';
          	$table_prefix = 'modx_';
          	
          
          if(!class_exists('makeTable')){
          	
          	include($modx->config['base_path'] . "manager/includes/extenders/maketable.class.php");
          
          }
          
          $table = new maketable();
          $maxpageSize = 25;
          define('MAX_DISPLAY_RECORDS_NUM',$maxpageSize);
          $db = new DBAPI($database_server,$dbase, $database_user,$database_password);
          
          
          $count = $db->select('count(*) as total',$table_prefix . 'site_content','','id');
          $total = $db->getRow($count);
          $numRecords = $total['total'];
          
          
          
          $limit = $table->handlePaging();
          $ds = $db->select('id,pagetitle',$table_prefix . 'site_content','','id',$limit);
          
          
          	$datas = array();
          	while($row = $db->getRow($ds)){
          	
          		$datas[] = $row;
          	
          	
          	}
          	
          
          
          
          
          	$tableClass = "grid";
          	$rowHeaderClass = "gridHeader";//
          	$rowRegularClass = "gridItem";
          	$rowAlternateClass = "gridAltItem";
          
          	$table->setTableClass($tableClass);
          	$table->setRowHeaderClass($rowHeaderClass);
          	$table->setRowRegularClass($rowRegularClass);
          	$table->setRowAlternateClass($rowAlternateClass);
          	$tbWidth = array("10%","20%");           
              $table->setColumnWidths($tbWidth);
              $table->createPagingNavigation($numRecords); 
          	//$table->createPagingNavigation($numRecords,'a=3&id='.$content['id']);
          	
          	$listTableHeader = array(	
          						'id'=>'id',
          						'pagetitle'=>'Page title'						
          						);
          	$listTableHeader = array_keys($datas);
          	$listData = array();
          	
          	foreach($datas as $k => $v){
          	
          		$listData[] = array(
          					'id' => $v['id'],
          					'pagetitle' => $v['pagetitle']
          					);
          	}
          	
          	
          	
          	$output = $table->create($listData,$listTableHeader);
          
          return $output;
          ?>
          
          
            Made with MODx : [url=http://www.copadel.com]copadel, fruits et l
            • 30897
            • 311 Posts
            Merci Heliotrope pour cet exemple qui est tout de même un peu plus complexe.
              TylerD - In MODx we trust
              [Derni
              • 11975
              • 2,542 Posts
              tu peux faire l’impasse sur tt le code de maketable si tu n’as besoin que de la connexion a la base

              je l’ai posté parce que je l’avais en stock ;-)

              Si tu as besoin de precisions n’hesites pas

              :-)
                Made with MODx : [url=http://www.copadel.com]copadel, fruits et l
                • 30897
                • 311 Posts
                Et bien tu tombes bien car j’aimerai des précisions concernant la création des snippets avec notamment les paramètres que l’on passe dans les snippets (ex : [[Snippet? &param1=`un` &param2=`autre`]]), comment les récupérer ?

                Aussi, est-ce que tu as un peu plus de docs sur la création des snippets ? j’aimerai en créer deux petits... smiley

                Merci
                  TylerD - In MODx we trust
                  [Derni
                  • 11975
                  • 2,542 Posts
                  Pour les params c’est extrement simple

                  dans ton snippet

                  $monParam1 = (isset($param1)) ? $param1 : "valeur par defaut";

                  j’ai mis monParam1 mais

                  $param1 = (isset($param1)) ? $param1 : "valeur par defaut";

                  marche tout aussi bien

                  :-)
                    Made with MODx : [url=http://www.copadel.com]copadel, fruits et l