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 :

Utiliser des variables dans une fonction


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de zugolin
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 267
    Points : 164
    Points
    164
    Par défaut Utiliser des variables dans une fonction
    bonjour a tous,
    je cherche a récuperer le résultat d'une concatenation de chaine :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $plus=0;
    $compte=count($_POST['tissus']);
     
    function tissu(){
     while ($plus < $compte){
     
    $_POST['tissus'][$plus].'-';
     
    $plus++; 
     }}
     echo tissu($lestissus).'<br>';
    j'ai trituré le code dans tous les sens (pas assez, sinon, j'aurai trouvé ...)
    avec des return et tout et tout...
    mais rien n'y fait, je n'arrive pas a recupérer le resultat du genre
    " tissus1-tissus8-tissus12" etc...
    j'en bave encore avec la bonne comprehension des fonctions (si quelqu'un connait un bon tuto la dessus )
    (note: en faisant un "echo $_POST['tissus'][$plus].'-';" dans mon while, ça marche )
    merci d'avance pour un petit coup de main ...

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 193
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 193
    Points : 8 403
    Points
    8 403
    Billets dans le blog
    17
    Par défaut
    $plus et $compte ne valent rien dans ta fonction (visibilité)
    De plus il est plus simple :
    - de parcourir un tableau avec foreach( )
    - de faire ce que tu veux avec implode( )
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Bonjour,

    Comme l'a dit Seb parcourir le tableau serait plus simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $les_tissus = "";
    for($i = 0; $i < count($_POST['tissus']); $i++){
      $les_tissus .= $_POST['tissus'][$i] . "-"; 
    }
    echo $les_tissus;

  4. #4
    Membre habitué Avatar de zugolin
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 267
    Points : 164
    Points
    164
    Par défaut
    ok, merci les gars !!

    je ne connaissais pas cette methode
    $les_tissus .= $_POST['tissus'][$i] . "-";
    associé avec ça
    $les_tissus = "";
    $les_tissus .= $_POST['tissus'][$i] . "-";
    ça devient de la ruse de grand chef apache (pas le serveur, hein! l'indien!!)

    voila comment récupérer une série de post et les assembler en ligne de caractères séparés par des point virgules (j'avais mis des tirets, c'était pour éviter les embrouilles lors de ma demande...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $les_tissus = "";
    for($i = 0; $i < count($_POST['tissus']); $i++){
      $les_tissus .= $_POST['tissus'][$i].';'; 
    }
    $les_tissus = substr($les_tissus,0, -1);//on enleve le dernier ";" pour eviter une erreur
    echo $les_tissus;
    merci encore

  5. #5
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 193
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 193
    Points : 8 403
    Points
    8 403
    Billets dans le blog
    17
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $les_tissus = implode(';', $_POST['tissus']) ;
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  6. #6
    Membre habitué Avatar de zugolin
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 267
    Points : 164
    Points
    164
    Par défaut
    a oui ..! ok-dac !
    encore plus simple comme ça ... evidement ... pourquoi s'embeter a recuperer chaque post "tissus" individuellement, alors que je dois les prendre tous ...
    et plus de probleme avec le point virgule ....
    ben merci bien a vous !!

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 30
    Points : 29
    Points
    29
    Par défaut
    sinon si tu veux un fonction absolument tu peux faire ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function tissu ($tissus) {
     
    if(is_array($tissus))
    {
    $retour='';
    foreach($tissus as $tissu){
        $retour.='-'.$tissu;
        }
    return substr($retour,1);
    }
    return false;
    }
     
    echo tissu($_POST['tissus']).'<br>';
    J'ai fais ca de tete donc c'est a verifier mais a priori ca passe.
    J'ai ajoute une verification que le parametre passé est bien typé Array.
    Sinon il return false.
    Ou il renvoit une chaine du genre : soie-velours-dentelle

  8. #8
    Membre habitué Avatar de zugolin
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 267
    Points : 164
    Points
    164
    Par défaut
    mreci kaen25 pour la fonction,
    je comprends un peu mieux, pour le return

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

Discussions similaires

  1. Utilisation des variables dans une fonction
    Par DeLorbe dans le forum Débuter
    Réponses: 6
    Dernier message: 05/02/2010, 10h50
  2. Passer des variables dans une fonction
    Par Herlece dans le forum PL/SQL
    Réponses: 11
    Dernier message: 11/07/2008, 14h18
  3. [D5] Créer dynamiquement des variables dans une fonction
    Par MelkInarian dans le forum Delphi
    Réponses: 11
    Dernier message: 14/04/2007, 12h16
  4. Comment utiliser des variables dans une requête SQL ?
    Par Ragnarok85 dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 12/02/2007, 16h23
  5. [AS2] déclarer des variables dans une fonction
    Par ooyeah dans le forum ActionScript 1 & ActionScript 2
    Réponses: 12
    Dernier message: 02/08/2005, 12h50

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