i

Bases de données


Bonjour,

J'ai créé un site avec OpenElement et j'aimerais intégrer des requêtes sql pour interroger une base de données MySQL.

Je vous donne mon exemple intégrer dans un bloc de code visuel et qui interroge la table des utilisateurs du packs UserSpace01.

Les futures tables que je créerais seront sur la même base de données.

Avez-vous une méthode pour renseigner les informations de connexion avec des variables ou fonctions de OpenElement ?

De façon plus générale, avez-vous d'autre moyen pour interroger la base de données principale :

- aller chercher des élements dans une table

- modifier un champs dans une table

- créer une liste à partir d'une table

- etc..


Merci de votre réponse, et vraiment je trouve votre logiciel de création super.

Yannick RIGONDAUD



<?php

     $mon_serveur='clm01.evxonline.net';

     $mon_login='admin';

     $mon_pass='********';

     $ma_base='base';


     $mysqli = mysqli_connect ($mon_serveur, $mon_login, $mon_pass, $ma_base);

?>


<html>

<head>

<title>Nom des membres</title>

</head>

<body>


<?php

     $sql = 'SELECT name, email FROM oe_logv1_users';

     $req = mysqli_query($mysqli, $sql);


     while ($data = mysqli_fetch_array($req)) {

          echo 'Nom : '.$data['name'].'<br />';

          echo 'Son email : '.$data['email'].'<br /><br />';

          }


     mysqli_free_result ($req);

     mysqli_close ($mysqli);

?>


</body>

</html>




Actuellement il n'y a pas de API pour utiliser le moteur dynamique de openElement. Vous pouvez quand meme risquer regarder un peu a l'interieur, apres avoir installe un pack (ex. Elements Dynamiques - Pack 50) puis appuyer Ctrl+Maj+D apres avoir selectionner un element, ou le fond de la page (ca donne le resultat different).


Sinon, pour l'instant, il faut generer le code javascript (en utilisant des echo), par exemple (dans Bloc de code PHP position Headers):


....

echo "<script>\n  var dbNoms = [], dbEmails = [];\n"; // pour creer des arrays/tableaux Javascript

while ($data = mysqli_fetch_array($req)) {

          echo "dbNoms.push({$data['name']}); dbEmails.push({$data['email']});\n";

          }

echo "</script>";

....


Puis l'utiliser par un Bloc de code Javascript (position Headers egalement):


$(function(){ // apres avoir charge la structure de la page


  var $elementAffichage = $('#WE??????????'); // REMPLACER WE?? PAR ID D'UN ELEMENT TEXTE SIMPLE LIGNE


  var outputHTML = "";


  for (var i=0; i<dbNoms.length; i++) {

    var nom = dbNoms, mail = dbEmails;

   outputHTML += "Nom: <b>"+nom+"</b> - @: <b>"+mail+"</b><br>"; // 1 personne par ligne

  }


  $elementAffichage.html(outputHTML);


});