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

PHP & Base de données Discussion :

pourcentage avec fonction


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Inscrit en
    Juin 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 9
    Par défaut pourcentage avec fonction
    Bonjour tout le monde,

    Voilà je cherche à effectuer plusieurs requêtes dans une seule et même fonction afin de pouvoir rassembler leurs résultats pour me permettre d'effectuer un pourcentage.

    Ce pourcentage sera retourner dans une variable $pourcent et sera afficher dans un fichier xml par un appel de la fonction.

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    // deux dates provenant d'un formulaire et permettant de choisir un intervalle
    $dateUSdeb = dateFrToUs($Date_Deb);
    $dateUSfin = dateFrToUs($Date_Fin);
     
    function pourCent($nom) {
            $db = mysql_connect("serveur","mabase","password") or die ("connexion impossible");
            mysql_select_db("mabase",$db);
     
            $req = mysql_query("SELECT count(*) AS compteur1
                                 FROM table1, table2, table3
                                 WHERE table1..... = table2......
                                 AND table2...... = table3.......
                                 AND date >= '" . $dateUSdeb . "'
                                 AND date <= '" . $dateUSfin . "'
                                 AND nom_personne = '" . $nom . "'");
     
            $resultat = mysql_fetch_object($req);
            $res = $resultat->compteur1;
     
     
            $req2 = mysql_query("SELECT count(*) AS compteur2
                                 FROM table1
                                 WHERE date >= '" . $dateUSdeb . "'
                                 AND date <= '" . $dateUSfin . "'");
     
     
            $resultat2 = mysql_fetch_object($req2);
            $res2 = $resultat2->compteur2;
     
            $pourcent = ($res/$res2)*100;
     
            return $pourcent;
    }
    J'ai testé mes requêtes indépendemment grâce à MySql 5.0 et elles fonctionnent, pourtant la fonction me retourne la valeur "0".
    J'ai également un message qui m'indique : Warning: Division by zero....
    A mon avis, je ne retourne pas correctement les requêtes mais je ne vois pas mon erreur !

    Merci d'avance pour votre aide.

  2. #2
    FoxLeRenard
    Invité(e)
    Par défaut
    Bonjour,

    En tout premier il faudrait que tu passe en appel de ta fonction

    dateUSdeb et dateUSfin

    donc un appel comme ceci,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $dateUSdeb = dateFrToUs($Date_Deb);
    $dateUSfin = dateFrToUs($Date_Fin);
    $resul=pourCent($nomxxx,$dateUSdeb,$dateUSfin);
    Ta fonction devenant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
     
    function pourCent($nom;$Dd,$Df) 
    {
    $db = mysql_connect("serveur","mabase","password")
     or die ("connexion impossible");
    mysql_select_db("mabase",$db);
     
    $req = mysql_query("SELECT count(*) AS compteur1
                                 FROM table1, table2, table3
                                 WHERE table1..... = table2......
                                 AND table2...... = table3.......
                                 AND date >= '" . $Dd . "'
                                 AND date <= '" . $Df . "'
                                 AND nom_personne = '" . $nom . "'");
     
            $resultat = mysql_fetch_object($req);
            $res = $resultat->compteur1;
     
    $req2 = mysql_query("SELECT count(*) AS compteur2
                                 FROM table1
                                 WHERE date >= '" . $Dd . "'
                                 AND date <= '" . $Df . "'");
     
     
            $resultat2 = mysql_fetch_object($req2);
            $res2 = $resultat2->compteur2;
     
            $pourcent = ($res/$res2)*100;
     
            return $pourcent;
    }

  3. #3
    Membre régulier
    Inscrit en
    Juin 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 9
    Par défaut
    Bonjour FoxLeRenard,

    Merci pour t'aide, j'ai essayé d'appliquer ce que tu m'as proposé, seulement ta solution ne m'as pas résolu mon problème.
    J'ai toujours la même erreur qu'au début avec en plus un message qui me dis que j'ai des arguments manquants.

    La page Web m'affiche :

    Warning: Division by zero in ......
    Warning: Missing argument 2 for pourCent().....
    Warning: Missing argument 3 for pourCent().....
    Si toi ou quelqu'un d'autre aurais une autre solution, je serais ravi de la tester.

    Je vous en remercie d'avance.

  4. #4
    FoxLeRenard
    Invité(e)
    Par défaut
    Mais bien sur non seulement tu passes tes paramétres, mais tu n'appelles ta fonction que s'ils sont présent et valides !

    Et attention aux nom de variables modifiés

Discussions similaires

  1. Problème avec fonction d'envoie de mail
    Par zyg dans le forum Réseau/Web
    Réponses: 1
    Dernier message: 23/02/2005, 08h48
  2. [Requête] Problème avec fonction "DATE_FORMAT()"
    Par sekiryou dans le forum Requêtes
    Réponses: 4
    Dernier message: 11/01/2005, 21h52
  3. Réponses: 3
    Dernier message: 16/06/2004, 11h26
  4. [langage] problème avec fonction read
    Par domidum54 dans le forum Langage
    Réponses: 2
    Dernier message: 30/03/2004, 20h42
  5. [VStudio 6] pb avec fonctions dans une DLL
    Par MogDeChNord dans le forum MFC
    Réponses: 8
    Dernier message: 08/01/2004, 08h57

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