Récupération d'informations en base de données

Bonjour,

Je suis en train de monter quelques classes pour gérer facilement l’agenda ensuite (que ce soit en ajout, suppression, modification).

Le problème que je rencontre à l’heure actuelle est « simple » : je n’arrive pas à récupérer le résultat d’une requête à la base de données…
DB::Prepare("SELECT * FROM eqLogic WHERE id = ' . $calendarId . ' AND object_id = 1 AND eqType_name = 'calendar'");

Je suis censé avoir au moins une ligne en résultat mais je ne parviens pas à récupérer ce résultat. Si je mets direct le résultat en log, j’ai juste un beau vide.

Un peu d’aide svp ?

Si le résultat est un array, il faut le transformer en texte pour qu’il puisse être affiché par $scenario->setLog().

Par exemple:

$scenario->setLog(print_r($result, true));
1 « J'aime »

Merci :slight_smile:

Autre méthode détournée pour voir si le calendrier existe, en récupérer la liste et comparer :
$list = DB::Prepare("SELECT id FROM eqLogic WHERE eqType_name = 'calendar'", NULL, DB::FETCH_TYPE_ALL);
Le retour est un array où chaque ligne est un array avec pour seule colonne « id ».

Concernant l’ajout, je ne trouve aucune commande qui fonctionne, y a-t-il des sécurités ? J’ai l’impression que faire un insert par Prepare est impossible ou alors pas en se basant seulement sur la seule requête.

J’essaye donc de passer par un autre biais après avoir trouvé ce topic : Récuperer date début et fin d'un événement - #5 par naboleo
Je suis en train de chercher dans le code pour ajouter/modifier/supprimer un event.

Salut Flo, je suis preneur de ton résultat quand tu auras fini ce que tu veux faire. Notamment je cherche comment créer un événement avec plusieurs actions de fin ou de sortie.

Salut,

Voici les principales commandes :

  • Récupération de l’agenda (par son id unique)
    $agenda = eqLogic::byId(A_REMPLACER_PAR_ID);
  • Récupération de la liste des évènements de l’agenda ($listEvents correspond à un tableau où chaque ligne est l’entité d’un évènement)
    $listEvents = $agenda->getEvents();
  • Récupération d’un évènement par son ID (l’ID est uniquement récupérable par le biais de l’accès à la base de données j’ai l’impression)
    $event = calendar_event::byId(A_REMPLACER_PAR_ID);
  • Création d’une nouvelle entité d’évènement totalement neutre (aucun lien avec un quelconque calendrier)
    $event = new calendar_event();

Pour créer un évènement :

  • Rattachement de l’évènement à un calendrier
    $event->setEqLogic_id(A_REMPLACER_PAR_ID);
  • Mise en place de la date de début et de fin (format Y-m-d H:i:s)
$event->setStartDate(A_REMPLACER_PAR_DATE);
$event->setEndDate(A_REMPLACER_PAR_DATE);
  • Ajout du nom de l’évènement
    $event->setCmd_param('eventName', 'NOM');
  • NON-affichage sur le widget (0 = non ; 1 = oui)
    $event->setCmd_param('noDisplayOnDashboard', '0');
  • Modifier l’icone (mais je n’ai pas encore trouvé comment activer celle-ci, j’ai que la version informatique de l’icone) - Si quelqu’un trouve, je suis preneur !
    $event->setCmd_param('icon', "");
  • Ajout de la couleur de fond
    $event->setCmd_param('color', '#2980b9');
  • Activer le fond transparent (0 = non ; 1 = oui)
    $event->setCmd_param('transparent', '0');
  • Ajout de la couleur du texte
    $event->setCmd_param('text_color', '#ffffff');
  • Ajout des commandes d’entrée de l’évent
    $event->setCmd_param('start', []);
  • Ajout des commandes de sortie de l’évent
    $event->setCmd_param('end', []);

Pour modifier un évènement (testé et fonctionnel), on récupère l’event (et on modifie les paramètres que l’on veut avec les commandes au-dessus ou au-dessous) puis on fait cette commande :

  • Enregistrement de l’event en base de données
    DB::save($event);

Pour supprimer un évènement (testé et fonctionnel), on récupère l’event puis on fait cette commande :

$event->remove();

Concernant les commandes d’entrée et sortie, je n’ai pas encore eu le temps de tester mais à priori c’est simplement le json à faire :

  • Pour un scénario :
[{"options":{"enable":"1","background":"0","scenario_id":"A_REMPLACER_PAR_ID_SCENARIO","action":"start","tags":""},"cmd":"scenario"}]
  • Pour une commande :
[{"options":{"enable":"1","background":"0"},"cmd":"#A_REMPLACER_PAR_ID_CMD#"}]
  • Si on veut en lancer plusieurs, on rajoute une ligne dans le json. Exemple :
[{"options":{"enable":"1","background":"0"},"cmd":"#A_REMPLACER_PAR_ID_CMD#"},{"options":{"enable":"1","background":"0"},"cmd":"#A_REMPLACER_PAR_ID_CMD#"}]

Il y a donc 3 choses manquantes concrètement :

  • La gestion des inclusions et répétition (perso je n’utiliserai pas cela mais si quelqu’un trouve ce serait top pour qu’on ait toutes les infos au besoin)
  • L’insertion des commandes d’entrée et sortie : il est nécessaire de retirer les antislash mais je n’y parviens pas
  • Idem que précédemment pour le rajout des icones
1 « J'aime »