![]() Jmarc | Je rencontre un soucis lorsque je tente d'utiliser cette possibilité d'insertion de "table" dans un article. J'ai créé une nouvelle "table" (en indiquant comme commande SQL : SELECT yacs_sections.title FROM yacs_sections) J'obtiens alors un message d'erreur : " SELECT * FROM yacs_tables AS tables WHERE (tables.id = 1) Effectivement, la requête généré par YACS : SELECT * FROM yacs_tables AS tables WHERE (tables.id = 1) ne passe pas sur mon MySQL 4.1.9 tandis que la syntaxe : SELECT * FROM yacs_tables WHERE (yacs_tables.id = 1) marche. Faut-il que je change de version MySQL pour être compatible avec YACS 8-11rc30 ? Ou y a t-il un réglage particulier à faire côté MySQL pour que le AS tables soit accepté dans les requêtes ? Pour l'instant, rien de vital, c'est juste pour documenter correctement mon "YACS pour les nuls". Mais si quelqu'un à une idée, je suis preneur... |
![]() J.Juraver | Il est vrai que cette fiche documentaire commence à dater. J'admets que cette tentative d'expliquer cette excellente fonction yacs est inaboutie. Bon c'est extrait d'un fil de discussion de forum aussi... ----- Faites votre pub pour Yacs Annuaire des sites YACs Plugin Firefox de recherche dans Yetanoz Nouvelles fonctions suggérées Je ne m'attarde pas, j'ai mon yacs en double file...
![]() Yacs on my blog | Suivez le blog Yacs | Yacs Showroom | Plugin Firefox de recherche dans Yetanoz | |
![]() Denis Flouriot |
|
Bernard Paques | yacs_actions, et pour obtenir la liste des actions pour l'usager numéro 123 il faut chercher tous les enregistrements tels queanchor = "user:123"
|
![]() Denis Flouriot | " Dans cet exemple, brassens est le nom de l'utilisateur... "Je ne comprends pas bien cette syntaxe SQL : Chaque utilisateur possède-t-il ses propres tables ?! (brassens_actions, sirh1_actions, yacs_actions) Ce n'est pas un champ qui specifie l'utilisateur ? |
YACS « Le livre de Yacs « Gestion de contenu «
Exemple d'utilisation du code "table"
Les tables sont des modules d'interprétation de commande SQL
Macmana veut afficher dans un article une centralisation d'actions assignées à des utilisateurs, elle la veut utilisateur par utilisateur.
SELECT distinct brassens_actions.title as "Tâches", brassens_users.nick_name as "Nom", brassens_actions.create_date as "Date de création" from brassens_actions inner join brassens_users on SUBSTRING(brassens_actions.anchor,6) =brassens_users.id order by brassens_actions.edit_date DESC limit 0,50
brassens est le nom de l'utilisateur... Tout ce qui est entre guillemets correspond aux noms que vont prendre les colonnes du tableau crée. Puis DESC limit 0,50 indique qu'il faudra afficher 50 item maximum.Ici, elle classe ses données de manière à faire apparaître uniquement les actions à faire et rejetées. Et puis elle ajoute aussi une colonne indiquant les statuts des membres :
SELECT distinct sirh1_actions.title as "Tâches", brassens_users.nick_name as "Nom",case when brassens_actions.status = 'o' then 'à faire' when brassens_actions.status ='r' then 'rejeté' end as "Statut", brassens_actions.create_date as "Date de création" from brassens_actions inner join brassens_users on SUBSTRING(brassens_actions.anchor,6) =brassens_users.id where brassens_actions.status <> 'c' order by brassens_actions.status ASC limit 0,50
A présent, elle cherche à ce que YACs génère un lien vers la page de l'action correspondante :
SELECT
CONCAT( "/actions/view.php?id=", sirh1_actions.id ) AS id,
brassens_actions.title AS "Tâches",
brassens_users.nick_name AS "Nom",
CASE WHEN brassens_actions.status = 'o'
THEN 'à faire'
WHEN brassens_actions.status = 'r'
THEN 'rejeté'
END AS "Statut",
brassens_actions.create_date AS "Date de création"
FROM brassens_actions
INNER JOIN brassens_users ON SUBSTRING( brassens_actions.anchor, 6 ) = brassens_users.id
WHERE brassens_actions.status <> 'c'
ORDER BY brassens_actions.status ASC, brassens_actions.create_date DESC
LIMIT 0 , 50
La même chose, mais sans indiquer de nom d'utilisateur (ce qui reviendra à afficher toutes actions pour tout utilisateur)
SELECT
CONCAT( "/actions/view.php?id=", yacs_actions.id ) AS id,
yacs_actions.title AS "Tâches",
yacs_users.nick_name AS "Nom",
CASE WHEN yacs_actions.status = 'o'
THEN 'à faire'
WHEN yacs_actions.status = 'r'
THEN 'rejeté'
END AS "Statut",
yacs_actions.create_date AS "Date de création"
FROM yacs_actions
INNER JOIN yacs_users ON SUBSTRING( yacs_actions.anchor, 6 ) = yacs_users.id
WHERE yacs_actions.status <> 'c'
ORDER BY yacs_actions.status ASC, yacs_actions.create_date DESC
LIMIT 0 , 50
















