IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Calcul nombre soumissions dans formulaire


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de Marcopololo
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 288
    Points : 84
    Points
    84
    Par défaut Calcul nombre soumissions dans formulaire
    Bonjour,

    Je souhaite afficher dans une textbox le total de mes soumissions et affichage dans la texte box mais cela ne fonctionne pas. Je plante mon formulaire ?

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    //<code>
    $db = JFactory::getDbo();
    $db->setQuery("SELECT COUNT(`SubmissionId`) FROM #__rsform_submissions WHERE FormId='8'");
     
    $submissions =  $db->loadResult();
    return $submissions
    //</code>

    Merci de votre aide

    Marc G.

  2. #2
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Bonsoir,

    Rien à voir avec javascript... et je ne vois pas ce que fait ce return tout seul dans l'univers;

  3. #3
    Membre régulier Avatar de Marcopololo
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 288
    Points : 84
    Points
    84
    Par défaut
    Me suis trompé de zone je crois bien.
    Désolé

  4. #4
    Membre régulier Avatar de Marcopololo
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 288
    Points : 84
    Points
    84
    Par défaut
    Bonjour,

    J'aurais une question qui concerne ce code.
    il fonctionne bien et je l'ai mis dans un text box caché de mon formulaire en espérant le récupérer pour l'afficher dans un article (géré par joomla).
    Je suis peut être à nouveau pas dans la bonne rubrique...
    Mais est il possible d'utiliser ce code dans un article joomla pour faire apparaitre mon total à cet endroit ? En un mot peut on mettre du php dans un article joomla et ce code suffit il pour afficher mon total ?

    Merci d'avance de votre aide.

    Marc G.

  5. #5
    Membre régulier Avatar de Marcopololo
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 288
    Points : 84
    Points
    84
    Par défaut
    J'ai avancé mais je rencontre un petit soucis.
    Il y a deux choses que je n'arrive pas à faire.
    1 : Passer une lignes entre chaque calcul. J'y arrive uniquement sur le titre mais pas la valeur de résultats
    2 : Mon calcul en filtrant ur la colonne Type compétition ne fonctionne pas, il plante ma page.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $db = JFactory::getDBO();
    $db->setQuery("SELECT COUNT(`SubmissionId`) FROM #__rsform_submissions WHERE `FormId`='8'");
    $directoryLayout .= '<b>Nombre des compétitions:</b> '.$db->loadResult();
     
     
     
    $db = JFactory::getDBO();
    $db->setQuery("SELECT COUNT(`SubmissionId`) FROM #__rsform_submissions WHERE `Type-competition`='Sélective' AND `FormId`='8'");
    $directoryLayout .= 'Nombre de compétitions sélectives: '.$db->loadResult();

    La page est ici (j'ai modifié le code en provisoire) : https://champfrance.soinsenergie.fr/...u-liste-compet

    Merci d'avance de votre aide

    Marc G.

  6. #6
    Membre régulier Avatar de Marcopololo
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 288
    Points : 84
    Points
    84
    Par défaut
    Je continue mon avancée. J'ai réglé le problème de passage à la ligne et plus de plantage du code mais le second ne fonctionne pas. Il me donne zéro. J'ai pourtant bien modifié le field name que je cherche Sélective en S&eacute;lective

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $db = JFactory::getDBO();
    $db->setQuery("SELECT COUNT(`SubmissionId`) FROM #__rsform_submissions WHERE `FormId`='8'");
    $directoryLayout .= '<b>Nombre des compétitions: </b> '.$db->loadResult();
     
     
     
    $db = JFactory::getDBO();
    $db->setQuery("SELECT COUNT(`SubmissionId`) FROM #__rsform_submissions WHERE 'Type competition'='S&eacute;lective' AND `FormId`='8'");
    $directoryLayout .= '<p><b>Nombre de compétitions sélectives: </b>'.$db->loadResult().'</p>';

  7. #7
    Membre régulier Avatar de Marcopololo
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 288
    Points : 84
    Points
    84
    Par défaut
    Je crois bien que j'ai vraiment besoin d'aide.
    Voici ce que je voudrais faire.
    Compter dans la table de mon formulaire id 8 le nombre de ligne dont la colonne 'Type-competition' ne contient pas 'Open (non sélective)'
    Mais ca ne fonctionne pas, le calcul se fait sur la totalité

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $db = JFactory::getDBO();
    $db->setQuery("SELECT COUNT('Type competition') FROM #__rsform_submissions WHERE 'Type competition'!='Open (Non sélective)' AND `FormId`='8'");
    $directoryLayout .= '<p><b>Nombre de compétitions sélectives: </b>'.$db->loadResult().'</p>';

    Merci d'avance

  8. #8
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    salut,

    généralement, on évite de compter des valeurs dans les colonnes du fait de la possibilité d'avoir des valeurs NULL et que leur présence peut influer sur le résultat final. Donc il est préférable de choisir pour compter une colonne qui ne contiendra jamais de valeur NULL comme par exemple au hasard la colonne clé primaire auto-incrément.
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT(`id`) AS nb_val FROM #__rsform_submissions WHERE `Type competition` != "Open (Non sélective)" AND `FormId`= 8
    Par ailleurs, on ne met JAMAIS d'espace en informatique et encore moins dans les noms des colonnes, donc `Type competition` devrait devenir : `type_competition`.
    Enfin, si `FormId` est un entier alors '8' doit être tout simplement 8et pourquoi traîner un # dans le nom de la table ? C'est aller au devant de problèmes. Fais simple.

  9. #9
    Membre régulier Avatar de Marcopololo
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 288
    Points : 84
    Points
    84
    Par défaut
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $db = JFactory::getDBO();
    $db->setQuery("SELECT COUNT('id') AS nb_val FROM #__rsform_submission_values WHERE 'type_competition'!= "Open (Non s&eacute;lective)" AND 'FormId'= 8");
    $directoryLayout .= '<p><b>Nombre de compétitions sélectives: </b>'.$db->loadResult().'</p>';

    J'ai corrigé mais ca plante.
    Si je comprend bien 'id' représente la colonne clé et nb_val le nom de la colonne renommée.
    Pour les noms de tables c'est RsForm et je suis donc obligé de conserver le format des tables. Mais j'ai corrigé le nom de mes champs et je ferai attention

  10. #10
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $db->setQuery('SELECT COUNT(`id`) AS nb_val FROM #__rsform_submission_values WHERE `type_competition` != "Open (Non s&eacute;lective)" AND `FormId` = 8');
    ensuite normalement $db->loadResult() doit te renvoyer un tableau donc pour afficher la valeur calculée c'est
    - soit : $db->loadResult()['nb_val'],
    - soit : $db->loadResult()[0]['nb_val'],
    selon ce que fait ta fonction.

  11. #11
    Membre régulier Avatar de Marcopololo
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 288
    Points : 84
    Points
    84
    Par défaut
    J'ai deux codes qui affichent des calculs de totaux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $db = JFactory::getDBO();
    $db->setQuery("SELECT COUNT(`SubmissionId`) FROM #__rsform_submissions WHERE `FormId`=8");
    $directoryLayout .= '<b>Nombre des compétitions: </b> '.$db->loadResult();
     
    $db = JFactory::getDBO();
    $db->setQuery("SELECT COUNT(`id`) AS nb_val FROM #__rsform_submissions WHERE 'type_competition'!= "Open (Non s&eacute;lective)" AND `FormId`=8");
    $directoryLayout .= '<p><b>Nombre de compétitions sélectives: </b>'.$db->loadResult()['nb_val'],.'</p>';
    Le premier fonctionne bien et me donne le total global des compétitions, par contre le code suivant continue à me donner une page d'erreur dès que je l'ajoute :
    0 - syntax error, unexpected 'Open' (T_STRING), expecting ')'
    Marc G.

  12. #12
    Membre actif Avatar de Trehinos
    Homme Profil pro
    Analyste développeur PHP
    Inscrit en
    Novembre 2012
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Analyste développeur PHP
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2012
    Messages : 100
    Points : 231
    Points
    231
    Par défaut
    Vous ne pouvez pas vous servir des guillemets doubles " à la fois en délimiteur de chaîne et dans la chaîne...
    Échappez les guillemets dans la requête : "requête \"SQL\"".

  13. #13
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    tu lis les réponses ou ça te passe par dessus la tête ?

  14. #14
    Membre régulier Avatar de Marcopololo
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 288
    Points : 84
    Points
    84
    Par défaut
    Non, j'essaye de tout assimiler et de faire attention mais je suis loin de maitriser.
    Je viens de comprendre que déjà je confondais `` et ' '.
    Je vais chercher et si je ne trouve pas je vous appellerai au secours.

  15. #15
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    dans le message n°10 tu as la réponse et dans le message 12 Trehinos te donne encore des explications du pourquoi de ton plantage.

  16. #16
    Membre régulier Avatar de Marcopololo
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 288
    Points : 84
    Points
    84
    Par défaut
    J'ai rectifié mais j'ai encore une erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1054 - Unknown column 'id' in 'field list'
    L'élément id peut il être absent d'une table de soumission ?

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $db = JFactory::getDBO();
    $db->setQuery('SELECT COUNT(`id`) AS nb_val FROM #__rsform_submissions WHERE `type_competition` != "Open (Non s&eacute;lective)" AND `FormId`= 8');
    $directoryLayout .= '<p><b>Nombre de compétitions sélectives: </b>'.$db->loadResult()['nb_val'].'</p>';

    Je viens d'éplucher les soumissions de ma base. comme je suis en phase de test je me retrouve avec des id utilisateurs pour beaucoup à zéro ce qui pourrait expliquer l'erreur peut être. Je vais les corriger

  17. #17
    Membre actif Avatar de Trehinos
    Homme Profil pro
    Analyste développeur PHP
    Inscrit en
    Novembre 2012
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Analyste développeur PHP
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2012
    Messages : 100
    Points : 231
    Points
    231
    Par défaut
    La colonne id n'existe pas dans la table #__rsform_submissions.

    Remarquez que rawsrc vous a dis d'utiliser id comme exemple, mais nous ne connaissons pas la structure de votre table.
    Ce qu'il faut comprendre, c'est qu'il faut utiliser un champ NON NULLABLE ici. La PRIMARY KEY s'y prête bien et s'appelle souvent id d'où cet exemple... remplacez par la colonne que vous voulez (mais qui est bien NON NULLABLE) (SubmissionId me paraissait correct).


    Je me pose aussi la question du dièse... Je ne suis pas certain qu'il soit autorisé dans un nom de table MySQL... mais je n'en suis pas sûr.

  18. #18
    Membre régulier Avatar de Marcopololo
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 288
    Points : 84
    Points
    84
    Par défaut
    Désolé d'être aussi mauvais.
    Je suis revenu à SubmissionId.
    A priori le # doit convenir car le premier code fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $db = JFactory::getDBO();
    $db->setQuery('SELECT COUNT(`SubmissionId`) FROM #__rsform_submissions WHERE `FormId`=8');
    $directoryLayout .= '<b>Nombre des compétitions: </b> '.$db->loadResult();
    Ce qui est frustrant c'est que je ne rajoute qu'une condition et cela ne fonctionne plus. Avec submission je n'ai plus la même erreur :
    Unknown column 'type_competition' in 'where clause'
    En enlevant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    `type_competition` != "Open (Non s&eacute;lective)" AND
    je n'ai plus d'erreur mais un résultat faux. Donc mon soucis vient de la manière dont je nomme ma colonne

    Nom : nom colonne type competition.png
Affichages : 201
Taille : 75,5 Ko

  19. #19
    Membre actif Avatar de Trehinos
    Homme Profil pro
    Analyste développeur PHP
    Inscrit en
    Novembre 2012
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Analyste développeur PHP
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2012
    Messages : 100
    Points : 231
    Points
    231
    Par défaut
    rawsrc vous disait de renommer la colonne "Type compétition" en "type_competition" pour suivre les conventions.

    Mais si vous la renommez dans votre requête, il faut également la renommer dans votre table, sinon MySQL n'est plus capable de faire le lien entre la colonne que vous demandez et celle qui est effectivement dans la table =)

  20. #20
    Membre régulier Avatar de Marcopololo
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 288
    Points : 84
    Points
    84
    Par défaut
    Oui je l'ai bien renommé de cette façon dans mon formulaire et on le retrouve bien dans le code dans la copie écran 'type_competition' mais cela bug toujours.
    Je pense qu'il y a un truc que je ne vois pas, pourtant surement gros comme le nez au milieu de la figure.... Bon faut avouer que je suis plutôt débutant.
    En tout cas merci de votre aide.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Débutant] calcul nombre pixels dans chaque angle d'une cercle trigonométrique
    Par rabaamohamed dans le forum Images
    Réponses: 2
    Dernier message: 18/07/2016, 10h05
  2. [XL-2010] Calculer nombre dates dans une colonne.
    Par Bloubee dans le forum Excel
    Réponses: 2
    Dernier message: 29/05/2013, 16h56
  3. calcul nombre d'occurence dans un formulaire
    Par totor92290 dans le forum IHM
    Réponses: 9
    Dernier message: 01/11/2012, 00h37
  4. calcul nombres decimaux dans un label
    Par pra3t0r dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 09/06/2011, 12h06
  5. Calcul d'heures dans formulaire
    Par ThieBEN dans le forum IHM
    Réponses: 0
    Dernier message: 07/02/2008, 12h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo