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 :

[Tableaux] Comment faire un tableau dans une fonction?


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de Alexandrebox
    Profil pro
    Inscrit en
    Août 2006
    Messages
    635
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 635
    Points : 153
    Points
    153
    Par défaut [Tableaux] Comment faire un tableau dans une fonction?
    Bonjout tout le monde,
    Mon problème est simple et vous connaisseztous la réponse. Moi je ne le sais pas parce que je ne connais pas grand chose en tableau.

    J'ai fait une fonction qui m'affiche les résultats depuis une base de données. ça marche nickel. Si je mets echo, toutes les lignes sont affichées. Le problème c'est d'utiliser toute la réponse comme une variable et faire

    return $mavariable;

    Comme ça je peux appeler cette fonction et l'afficher où je veux. Le problème est que si je fais seulement des concaténation sans passer d'bord par un tableau, seule la première ligne est retournée. Merci bcp pour âme charitable qui m'aidera

    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
    <?php
    function mon_application()
    {
    //traitement db etc.
     
    while($donnees_messages=mysql_fetch_assoc($retour_messages))
    {
    $ID = $donnees_messages['IDT'];
    $titre = $donnees_messages['titre'];
    $applipage = $donnees_messages['page'];
    $texte = nl2br($donnees_messages['contenu']);
     
    echo '<table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
     <td width="90%" height="13" valign="top" class="bgBande">
     <a href="'.$urlPages.'-'.$pageActuelle.'-'.$applipage.'"><span class =menucase>'.$titre.'</span></a>
     </td>
    </tr>
    <tr>
     <td height="13" valign="top" class="gauche">'.$texte.'</td>
    </tr>
    </table><br /><br />';
     
    }
     
    echo  '<p align="center">Page : '; //Pour l'affichage, on centre la liste des pages
    //Traitement des numéros de pages.
    echo '</p>';
    }
    ?>
    D'avance je vous remercie

  2. #2
    Membre habitué Avatar de Alexandrebox
    Profil pro
    Inscrit en
    Août 2006
    Messages
    635
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 635
    Points : 153
    Points
    153
    Par défaut
    Ce que j'aimerais faire les amis, c'est ça :
    1 Stocker les résultats dans une table
    (C'est la où je beugue)

    2 Assigner tous les résultats à une variable le genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php $ma_variable = $tab[]; ?>
    3 Concaténer les autres éléments à cette variables
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php 
    $ma_variable .= '<P><strong>' .$titre.'</strong>'; 
    $ma_variable .= 'etc. </p>'
    ?>
    4 Retourner la fonction
    Pourriez-vous SVP m'aidez au niveau des tableaux?
    D'avance je vous remercie

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ce n'est pas tres clair ce que tu veux faire.

    Actuellement, pour chaque enregistrement de ta requete, tu construis un tableau HTML.

    Que voudrais-tu stocker ? chaque valeur d'un enregistrement ? chaque tableau ?

    un tableau PHP ca peut etre vu comme un ensemble de variables, c'est pas plus compliqué que ca.

  4. #4
    Membre habitué Avatar de Alexandrebox
    Profil pro
    Inscrit en
    Août 2006
    Messages
    635
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 635
    Points : 153
    Points
    153
    Par défaut
    Merci pour ta réponse.
    C'est simple ce que je cherche à faire, mon seul problème, c'est que je ne sais pas comment stocker les résultats dans un tableau et retourner tout comme une variable.

    Si je fais ceci, j'aurai seulement un seul enrégistrement.
    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
    35
     
     
    <?php
    function mon_application()
    {
    //traitement db etc.
     
    while($donnees_messages=mysql_fetch_assoc($retour_messages))
    {
    $ID = $donnees_messages['IDT'];
    $titre = $donnees_messages['titre'];
    $applipage = $donnees_messages['page'];
    $texte = nl2br($donnees_messages['contenu']);
     
    $ma_variable =  '<table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
     <td width="90%" height="13" valign="top" class="bgBande">
     <a href="'.$urlPages.'-'.$pageActuelle.'-'.$applipage.'"><span class =menucase>'.$titre.'</span></a>
     </td>
    </tr>
    <tr>
     <td height="13" valign="top" class="gauche">'.$texte.'</td>
    </tr>
    </table><br /><br />';
     
    }
     
    $ma_variable .=  '<p align="center">Page : '; //Pour l'affichage, on centre la liste des pages
    //Traitement des numéros de pages.
    $ma_variable .= '</p>';
     
    return $ma_variable;
    //J'aurai un seul enrégistrement. Pas bon.
    }
    ?>
    C'est pouvoir avoir tous les enrégistrements dans une seule variable que je retourne

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Pourquoi tu ne fais pas simplement ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ma_variable .=  '<table width="100%" border="0"

  6. #6
    Membre expérimenté
    Avatar de ryan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 956
    Points : 1 316
    Points
    1 316
    Billets dans le blog
    1
    Par défaut
    Yop!

    A chaque itération de ta boucle while, tu écrases la valeur précédente de $ma_variable, c'est normal que tu n'aies qu'une seule ligne.

    Tu dois donc initialiser $ma_variable en dehors de la boucle, avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $ma_variable = "<table width='100%' border='0' cellspacing='0' cellpadding='0'>";
    Ensuite, à chaque itération de la boucle while, tu ajoutes le contenu du <TR> à ta variable:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $ma_variable = $ma_variable . "<tr>...........
    Après la boucle, tu clos la balise <table>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $ma_variable = $ma_variable . "</table>";

  7. #7
    Membre habitué Avatar de Alexandrebox
    Profil pro
    Inscrit en
    Août 2006
    Messages
    635
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 635
    Points : 153
    Points
    153
    Par défaut
    Merci beaucoup Ryan. Tu expliques bien. Il fallait juste initialiser ma variable avant la boucle

    Tu es un chef.
    Merci et bonne soirée

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

Discussions similaires

  1. Comment faire un EXEC dans une fonction
    Par baime dans le forum Développement
    Réponses: 10
    Dernier message: 28/05/2014, 14h04
  2. Comment recuperer un tableau dans une fonction?
    Par Sunsawe dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 07/06/2009, 00h52
  3. [Tableaux] un tableau dans une fonction
    Par eelessar dans le forum Langage
    Réponses: 2
    Dernier message: 29/04/2009, 09h56
  4. comment faire un offset dans une fonction ?
    Par tempo-lyon dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/10/2007, 11h15
  5. Comment définir un tableau dans une classe?
    Par Pragmateek dans le forum Collection et Stream
    Réponses: 11
    Dernier message: 30/04/2006, 20h34

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