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 :

Ma fonction ne me retourne rien


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de berti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 239
    Points : 175
    Points
    175
    Par défaut Ma fonction ne me retourne rien
    bonjour à tous,

    c'est la fin de journée, je vois plus rien. Je ne vois pas mon bug. Je dois retourner un nombre depuis une requête sql sur une base existe. je passe en paramètre différents éléments. Sauf que ça ne me retourne rien. Voila un bout de 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
    head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Document sans titre</title>
    <?php
    	function NombreMois($mois, $annee)
    	{
    		include "connec.inc.php";
     
    		$sql = "SELECT Sum(NB_PERSONNES) AS nbr FROM frequentations WHERE MOIS='$mois' AND ANNEE= '$annee';";
     
    		$exec = mysql_query($sql, $connec) or die("erreur -> ".mysql_error());		
     
    		if($ligne = mysql_fetch_array($exec))
    		{
    		   $nbr = $ligne['nbr'];
    		}
     
    			if(!$nbr){$nbr=1;}
    	} 
    ?>
    </head>
     
    <body>
    <?php
     
    $annee = 2008;
     
    $j=NombreMois('Janvier', $annee); 
     
    echo $j;
     
    ?>
    </body>

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Il ne te manquerai pas l'instruction return $variable; par hasard ? Sinon je ne vois pas du tout comment faire :s

  3. #3
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    Peut etre parce que ta fonction ne renvoi rien et n'affiche rien ...

  4. #4
    Membre habitué Avatar de berti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 239
    Points : 175
    Points
    175
    Par défaut
    ma fonction n'affiche rien. Sans la fonction tout fonctionne. et mes paramètres retourne bien un chiffre. Mais avec la fonction je vois pas.

    Pour le return ...???

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    L'instruction return permet de retourner une valeur de retour dans ton cas tu pourrais retourner nbr ce qui te permettrai de stocker ce retour dans une variable :

    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
     
    function NombreMois($mois, $annee)
    	{
    		include "connec.inc.php";
     
    		$sql = "SELECT Sum(NB_PERSONNES) AS nbr FROM frequentations WHERE MOIS='$mois' AND ANNEE= '$annee';";
     
    		$exec = mysql_query($sql, $connec) or die("erreur -> ".mysql_error());		
     
    		if($ligne = mysql_fetch_array($exec))
    		{
    		   $nbr = $ligne['nbr'];
                       return $nbr;
    		}
    		elseif(!$nbr)
                    {
                        $nbr = 1;
                        return $nbr;
                    }
    	}

  6. #6
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    Citation Envoyé par berti Voir le message
    ma fonction n'affiche rien. Sans la fonction tout fonctionne. et mes paramètres retourne bien un chiffre. Mais avec la fonction je vois pas.

    Pour le return ...???
    Tu devrais regarder comment on cree des fonctions en PHP.

  7. #7
    Membre émérite Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Points : 2 276
    Points
    2 276
    Par défaut
    Bon sans la fonction tu fait l'affichage donc il me semble logique que tu est le résultat affiché.

    Parcontre lorsque que l'on crée une fonction et qu'on désire qu'elle nous donne un résultat il faut l'instruction return.
    Cette instruction ne sert pas toujours suivant comment on code nos fonctions.

    Imaginons je désire une fonction qui vas écrire partout ou je la mets un lien vers mon index.
    Voici la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function get_index(){
    echo('<a href="index.php">Retour à l\'index</a>');
    }
    Partout ou je metterai get_index(); ca ecrira le lien, car dans ma fonction je lui demande d'écrire du contenu!!

    Parcontre autre fonction si je désire tester le sexe d'une personne j'ai deux possibilitée
    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
     
    function get_sex($var){
    if($var == 'M'){
      echo('salut man');
    }
    if($var == 'F'){
      echo('salut gonz');
    }
    }
    // La pareil pas besoin de retourné quelquechose vu qu'on écrit directement 
    //la page, mais ca servira à rien si tu veux savoir le sexe sans l'afficher.
    //Et donc on utilise ca pour avoir une donnée sans l'afficher
    function get_sex($var){
    $reponse = 'salut extraterrestre';
    //dans le cas ou $var vaut rien je l'ai pas pris en compte avant mais bon hein !
    if($var == 'M'){
      $reponse = 'salut man';
    }
    if($var == 'F'){
      $reponse = 'salut gonz';
    }
    return $reponse
    }
    Et donc voila soit tu utilisera get_sex(valeur); qui vas ecrire dans ta page, soit si tu désire avoir la valeur pour faire tes traitements (sans affichage direct) alors tu fera $lesexeduvisiteur = get_sexe(valeur);

    Bon c'est des exemples complétement balot mais c'est pour te montrer le principe.
    Donc dans ton cas premier il est clair que ta fonction ne sert à rien car :
    -Elle n'ecrit rien.
    -Elle n'affiche rien.

    PS : attention certaine fonction qui n'écrivent rien et n'affichent rien peuvent être utile mais pas dans le cas que tu nous présente.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. une fonction qui ne retourne rien
    Par blackvicking dans le forum AppleScript
    Réponses: 3
    Dernier message: 07/12/2013, 20h54
  2. Ma fonction ne me retourne rien
    Par anxious dans le forum Langage
    Réponses: 4
    Dernier message: 04/11/2009, 16h26
  3. [AJAX] ma fonction ne retourne rien
    Par trigone dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 22/12/2008, 18h06
  4. fonction qui ne retourne rien, comment c'est possible ?
    Par lOeil dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 02/06/2007, 00h51
  5. Fonction ne retournant rien ?
    Par bds2006 dans le forum Delphi
    Réponses: 8
    Dernier message: 05/06/2006, 14h47

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