Compréhension et ajout de règles dans un script
Résolu/Fermé
julien2810
Messages postés
33
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
26 mai 2018
-
Modifié le 22 janv. 2018 à 21:22
yg_be Messages postés 23399 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 décembre 2024 - 24 janv. 2018 à 17:40
yg_be Messages postés 23399 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 décembre 2024 - 24 janv. 2018 à 17:40
A voir également:
- Compréhension et ajout de règles dans un script
- Script vidéo youtube - Guide
- Tableau règles de ponctuation - Guide
- Ajouter un profil netflix payant - Accueil - Guide streaming
- Comment enlever la limite d'ajout sur snapchat - Forum Snapchat
- Regles telephone - Guide
2 réponses
yg_be
Messages postés
23399
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 décembre 2024
Ambassadeur
1 556
22 janv. 2018 à 21:22
22 janv. 2018 à 21:22
bonsoir, je suggère ceci:
$db->setQuery(" SELECT COUNT(*) FROM autretabledelabasededonnée WHERE _STATUS = 1 "); $submissions = $db->loadResult(); if ($submissions >=10) {
julien2810
Messages postés
33
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
26 mai 2018
11
23 janv. 2018 à 07:41
23 janv. 2018 à 07:41
Finalement j'ai trouvé une solution qui me convient pour le moment :)
Du coup ça calcule combien de soumission dans la colonne Fieldvalue avec l'ID du formulaire.
C'est un peut barbare mais bon c'est déjà ça.
Ca aurais été super de pouvoir définir une donnée de la colonne au lieu de devoir toutes les prendre en comptes.
En tout cas merci pour ton aide, tu m'as bien mis sur le chemin.
// Get a database connection.
$db = JFactory::getDbo();
// Setup the query. This query counts the number of submissions for the current form.
// $formId contains the ID of the current form.
$db->setQuery("SELECT COUNT(*) FROM #__rsform_submission_values WHERE FieldValue = 1 AND FormId = 4 ");
$submissions = $db->loadResult();
if ($submissions >=2) {
$formLayout = 'Le tirage est terminé ';
}
Du coup ça calcule combien de soumission dans la colonne Fieldvalue avec l'ID du formulaire.
C'est un peut barbare mais bon c'est déjà ça.
Ca aurais été super de pouvoir définir une donnée de la colonne au lieu de devoir toutes les prendre en comptes.
En tout cas merci pour ton aide, tu m'as bien mis sur le chemin.
yg_be
Messages postés
23399
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 décembre 2024
1 556
23 janv. 2018 à 09:55
23 janv. 2018 à 09:55
Je ne comprends pas ce qui te déplais dans count(*): cela retourne le nombre d'éléments sélectionnés, présents dans le résultat de la requête. Souhaites-tu obtenir autre chose?
julien2810
Messages postés
33
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
26 mai 2018
11
24 janv. 2018 à 10:21
24 janv. 2018 à 10:21
En fait à la base je souhaitait que ça ne compte que les valeurs du fildname _STATUS.
Mais apparemment on ne peux que faire un count de la colonne sans spécifier de champs.
De ce que j'ai compris hein :)
En tout cas un grand merci à toi pour tes explications et le temps que tu m'as accordé.
Mais apparemment on ne peux que faire un count de la colonne sans spécifier de champs.
De ce que j'ai compris hein :)
En tout cas un grand merci à toi pour tes explications et le temps que tu m'as accordé.
yg_be
Messages postés
23399
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 décembre 2024
1 556
>
julien2810
Messages postés
33
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
26 mai 2018
24 janv. 2018 à 12:16
24 janv. 2018 à 12:16
veux-tu ne compter que les enregistrements qui ont une valeur non nulle dans _STATUS, ou bien le nombre de valeurs distinctes de _STATUS, ou bien encore autre chose?
julien2810
Messages postés
33
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
26 mai 2018
11
24 janv. 2018 à 12:24
24 janv. 2018 à 12:24
Je souhaite compter les enregistrements avec une valeur non nulle dans _STATUS et qui sont relié à l'ID du formulaire.
Je ne sais simplement pas comment lui dire que c'est uniquement dans _STATUS et non dans toute la colonne qu'il doit vérifier.
Je ne sais simplement pas comment lui dire que c'est uniquement dans _STATUS et non dans toute la colonne qu'il doit vérifier.
yg_be
Messages postés
23399
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 décembre 2024
1 556
>
julien2810
Messages postés
33
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
26 mai 2018
24 janv. 2018 à 17:40
24 janv. 2018 à 17:40
si tu veux compter des enregistrements, count(*) est parfait.
si tu veux éliminer les enregistrements où _STATUS est NULL, tu peux ajouter "
si tu veux éliminer les enregistrements où _STATUS est NULL, tu peux ajouter "
AND _STATUS is not null"
22 janv. 2018 à 21:34
Le " SELECT COUNT(*) " il ne faut pas que ce soit une *, il doit reprendre le nom de la colonne ou il doit compter non ?
A la base j'avais pensé à ceci :
// Define the maximum number of submissions. For this example we'll use 50.
$max = 50;
// Get a database connection.
$db = JFactory::getDbo();
// Setup the query. This query counts the number of submissions for the current form.
// $formId contains the ID of the current form.
$db->setQuery("SELECT COUNT(`FieldName`) FROM #__rsform_submission_values WHERE `FormId`='".(int) $formId."'");
$submissions = $db->loadResult();
if ($submissions >= $max) {
$formLayout = 'Bravo';
}
Ici je lui demande de compter le nombre dans la colonne " FieldName " de la table " #__rsform_submission_values " du formulaire " WHERE `FormId`='".(int) $formId."'"); "
Le problème de ce script et de celui du dessus, c'est qu'il compte le nombre dans la colonne de la table.
Il faudrait réussir à lui spécifier qu'il doit vérifier que dans la colone " FieldName " dans le champ " _STATUS " combien sont avec la valeur " 1 "
Héhé je suis loin d'être un as, mais pour le moment je comprend bien ?
22 janv. 2018 à 21:39
22 janv. 2018 à 22:00
Donc j'ai ajouté " ' " avant et après _STATUS ce qui fait que le formulaire fonctionne de nouveau.
Mais il ne compte pas le nombre, après 11 formulaires envoyé et en ayant activé les 11 formulaires on peut continuer à en envoyé tant que l'on veux.
$db->setQuery(" SELECT COUNT(*) FROM #__rsform_submission_values WHERE '_STATUS' = 1 ");
$submissions = $db->loadResult();
if ($submissions >=10) {
Il faut aussi lui ajouter le : `FormId`='".(int) $formId."'"); sinon il ne saura pas que c'est uniquement dans le formulaire concerné je pense.
Ne peut-on pas imaginé quelque chose comme ceci ?
$db->setQuery("SELECT COUNT(`SubmissionId`) FROM #__rsform_submissions WHERE `FormId`='".(int) $formId."'") AND FROM #__rsform_submission_values WHERE '_STATUS' = 1 ");
$submissions_STATUS >=10) {
Ce qui bien entendu me ramène de nouveau à un écran blanc ^^
Je suis une purge en code hein donc tout ce que je propose est sans doute de la pure Mer... :)
Je pense qu'il faut garder la règle de base et simplement ajouté une variable qui dit de vérifier aussi que le champ dans la colonne de la table de la base de donnée est = ou > au nombre voulus.
22 janv. 2018 à 22:04
https://www.rsjoomla.com/support/documentation/rsform-pro/custom-scripting/adding-a-counter-for-submissions.html
Modifié le 22 janv. 2018 à 22:27
Il faut qu'il compte :
Combien de FieldName qui se nommes _STATUS avec le FieldValue qui est = à 1 dans la table _rsform_submission_values venant du FormId concerné.
Les additionnes et dise stoppe une fois arrivé à un nombre fixe.