Comment programmer une fct en PHP
Résolu
Lili_754
Messages postés
125
Date d'inscription
Statut
Membre
Dernière intervention
-
Alain_42 Messages postés 5361 Date d'inscription Statut Membre Dernière intervention -
Alain_42 Messages postés 5361 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je cherche à écrire une fonction PHP vect_to_tableHTML qui prend en paramètre un tableau PHP, et qui retourne une table HTML listant ligne à ligne tous ses éléments.
Merci de m'aider car je ne sais pas comment on creer une fonction en php
Voici mon debut de code
$Coordonnee = array(
'prenom'=> 'Lila'
'nom' => 'Du'
'adresse' => '4 rue Dodo'
'ville' => 'paris'
'tel' => '0146453423');
function vect_to_tableHTML($array){
foreach ($Coordonnee as $information => $donnee){
echo "<table border='1'>";
echo "<tr> <th> $information </th>";
echo "<td> $donnee </td>";
echo "</tr>";
echo "<table>";
Je sais pas du tout si cela est correcte, please aide moi :)
Je cherche à écrire une fonction PHP vect_to_tableHTML qui prend en paramètre un tableau PHP, et qui retourne une table HTML listant ligne à ligne tous ses éléments.
Merci de m'aider car je ne sais pas comment on creer une fonction en php
Voici mon debut de code
$Coordonnee = array(
'prenom'=> 'Lila'
'nom' => 'Du'
'adresse' => '4 rue Dodo'
'ville' => 'paris'
'tel' => '0146453423');
function vect_to_tableHTML($array){
foreach ($Coordonnee as $information => $donnee){
echo "<table border='1'>";
echo "<tr> <th> $information </th>";
echo "<td> $donnee </td>";
echo "</tr>";
echo "<table>";
Je sais pas du tout si cela est correcte, please aide moi :)
A voir également:
- Comment programmer une fct en PHP
- Programmer sms - Guide
- Programmer mail gmail - Guide
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Comment mettre en veille un programme sous windows 10 - Guide
9 réponses
<?php ///// fonctions php //tu peux mettre la fct au début du code c'est plus lisible si elles sont toutes regroupées au début function vect_to_tableHTML($array){ //ici dans la fct il faut utiliser le nom de l'argument c a d $array //et mettre <table> en dehors de la boucle sinon tu vas avoir autant de tables que de lignes echo "<table border='1'>"; foreach ($array as $information => $donnee){ //une ligne tr par ligne de l'array echo "<tr> <th> $information </th>"; echo "<td> $donnee </td>"; echo "</tr>"; } echo "<table>"; } //initialisation de l'array $Coordonnee = array( 'prenom'=> 'Lila' 'nom' => 'Du' 'adresse' => '4 rue Dodo' 'ville' => 'paris' 'tel' => '0146453423'); //appel de la fonction vect_to_tableHTML($Coordonnee); //en lui passant en argument l'array $Coordonnee
tu as du modifier qq chose car chez moi j'ai bien seulement la première colonne en gras
par contre tu as oublié les virgule lors de la definition de l'array:
autre question comment fias tu pour rentrer dans ton array une autre personne
car ton affichage est plutôt inversé, nom, prenom etc devraient être en titre de colonnes et le svaleurs dans les lignes en dessous
par contre tu as oublié les virgule lors de la definition de l'array:
//initialisation de l'array $Coordonnee = array( 'prenom'=> 'Lila', 'nom' => 'Du', 'adresse' => '4 rue Dodo', 'ville' => 'paris', 'tel' => '0146453423');
autre question comment fias tu pour rentrer dans ton array une autre personne
car ton affichage est plutôt inversé, nom, prenom etc devraient être en titre de colonnes et le svaleurs dans les lignes en dessous
il manqait les virgules dans l'array.
un exemple:
un exemple:
<?php ///// fonctions php function vect_to_tableHTML($array){ echo "<table border='1'>"; //affichage de la ligne titre echo '<tr><th>prenom</th><th>nom</th><th>adresse</th><th>ville</th><th>telephone</th></tr>'; foreach ($array as $index_1 => $donnee){ //affichage des donnes une ligne tr par ligne de l'array echo '<tr>'; //colonnes echo '<td>'.$donnee['prenom'].'</td><td>'.$donnee['nom'].'</td><td>'.$donnee['adresse'].'</td><td>'.$donnee['ville'].'</td><td>'.$donnee['tel'].'</td>'; echo '</tr>'; } echo "<table>"; } //////initialisation de l'array /* on va faire un array à deux dimensions premiere dimension: index 0, 1 ,2 etc, coorespondant à chaque personne deuxième dimension: pour chaque index 0,1,2 on aura un array avec omme index prenom, nom etc.. correspondant aux donnees de chaque personne */ $Coordonnee[0] = array( 'prenom'=> 'Lila', 'nom' => 'Du', 'adresse' => '4 rue Dodo', 'ville' => 'paris', 'tel' => '0146453423'); $Coordonnee[1] = array( 'prenom'=> 'Annie', 'nom' => 'Dupuy', 'adresse' => '2 av de Paris', 'ville' => 'Roissy', 'tel' => '0121345697'); $Coordonnee[2] = array( 'prenom'=> 'Pierre', 'nom' => 'Dupont', 'adresse' => 'Place bellecourt', 'ville' => 'Lyon', 'tel' => '0438965421'); //etc pour les autres personnes /////appel de la fonction vect_to_tableHTML($Coordonnee); //en lui passant en argument l'array $Coordonnee ?>
a ouii c'est vrai j'ai eu un message d'erreur je l'avais corrigé apres, merci. En faite on me demande de traiter les ligne et les colonne de façon dynamique. Je souhaite avoir juste dans ma premiere colonne tout mes <th> donc j'ai fais ce-ci:
function vect_to_tableHTML($array){
echo "<table border='1'>";
echo "<tr>";
foreach ($array as $information => $donnee){
echo "<th> $information </th>";
#echo "<tr> <td> $donnee </td></tr>";
}
echo "</tr>";
echo "<table>";
}
Mon souci c'est pour mes td comment faire pour qu'il s'associe parfaitement à la colonne dont la $donnee correspont??
function vect_to_tableHTML($array){
echo "<table border='1'>";
echo "<tr>";
foreach ($array as $information => $donnee){
echo "<th> $information </th>";
#echo "<tr> <td> $donnee </td></tr>";
}
echo "</tr>";
echo "<table>";
}
Mon souci c'est pour mes td comment faire pour qu'il s'associe parfaitement à la colonne dont la $donnee correspont??
function vect_to_tableHTML($array = array()){ ?> <table border="1"> <thead> <tr> <?php foreach(array_keys($array[0]) as $key){ ?> <th><?php echo $key; ?></th> <?php } ?> </tr> <thead> </tbody> <?php foreach ($array as $line){ ?> <tr> <?php foreach ($line as $element){ ?> <td><?php echo $element; ?></td> <?php } ?> </tr> <?php } ?> </tbody> </table> <?php }
function vect_to_tableHTML($array){
echo "<table border='1'>";
echo "<tr>";
foreach ($array as $information => $donnee){
echo "<th> $information </th>";
}
echo "</tr>";
foreach ($array as $information => $donnee){
echo "<tr>";
foreach ($array as $information => $donnee){
echo "<td> $donnee </td>";
}
echo "</tr>";
}
echo "<table>";
}
J'ai suivi l'algorithme, maintenant je n'ai plus le souci de la donnee mise dans la bonne colonne, mon seul souci c'est que ça boucle autant que j'ai de colonne, c'est à dire il m'affiche 5 fois mes donnees dans 5 lignes differentes..
echo "<table border='1'>";
echo "<tr>";
foreach ($array as $information => $donnee){
echo "<th> $information </th>";
}
echo "</tr>";
foreach ($array as $information => $donnee){
echo "<tr>";
foreach ($array as $information => $donnee){
echo "<td> $donnee </td>";
}
echo "</tr>";
}
echo "<table>";
}
J'ai suivi l'algorithme, maintenant je n'ai plus le souci de la donnee mise dans la bonne colonne, mon seul souci c'est que ça boucle autant que j'ai de colonne, c'est à dire il m'affiche 5 fois mes donnees dans 5 lignes differentes..
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question<?php class vect_to_tableHTML { public $table; function _construct(){ $this->table = ''; } function thead($keys){ $this->table .= '<thead><tr>'; foreach($keys as $key){ $this->table .= '<th>'.$key.'</th>'; } $this->table .= '</tr></thead>'; } function tbody($elemnts){ $this->table .= '<tr>'; foreach($elemnts as $elt){ $this->table .= '<td>'.$elt.'</td>'; } $this->table .= '</tr>'; } function generate($array = array()){ $this->table = '<table border="1">'; if(is_array($array[0])){ // alors 2 dimensions ou plus $this->thead(array_keys($array[0])); foreach($array as $line){ $this->tbody($line); } }else{ // un seule dimension $this->thead(array_keys($array)); $this->tbody($array); } $this->table .= '</table>'; return $this->table; } } $Coordonnee[0] = array( 'prenom'=> 'Lila', 'nom' => 'Du', 'adresse' => '4 rue Dodo', 'ville' => 'paris', 'tel' => '0146453423'); $Coordonnee[1] = array( 'prenom'=> 'Annie', 'nom' => 'Dupuy', 'adresse' => '2 av de Paris', 'ville' => 'Roissy', 'tel' => '0121345697'); $Coordonnee[2] = array( 'prenom'=> 'Pierre', 'nom' => 'Dupont', 'adresse' => 'Place bellecourt', 'ville' => 'Lyon', 'tel' => '0438965421'); $vect = new vect_to_tableHTML(); $tab2 = $vect->generate($Coordonnee); // tableau a 2 dimension $tab1 = $vect->generate($Coordonnee[0]); // tableau a 1 dimension echo $tab1; echo $tab2;
le problème n'est pas dans l'appel de la fonction, tel qu'on te l'a fait c'est bon.
le problème est dans le code la fonction elle même.
Donnes nous un exemple de tableau que tu veux obtenir avec 3 personnes par exemple
titres en haut des colonnes ou au début des lignes ?
le problème est dans le code la fonction elle même.
Donnes nous un exemple de tableau que tu veux obtenir avec 3 personnes par exemple
titres en haut des colonnes ou au début des lignes ?
par exemple je souhaite un affichage de type
echo "<table border=\"1\">";
echo "<tr>";
echo "<th> nom </th>";
echo "<th> prenom </th>";
echo "<th> adresse </th>";
echo "<tr> <td> lili </td>";
echo "<td> popo </td>";
echo "<td> 4, rue bobo </td> </tr>";
echo "<tr> <td> trutru </td>";
echo "<td> nolo </td>";
echo "<td> 54, rue du chomage </td> </tr>";
echo "</table>";
Mais mon souci vient au niveau de du deuxieme foreach de la fonction je pense...
echo "<table border=\"1\">";
echo "<tr>";
echo "<th> nom </th>";
echo "<th> prenom </th>";
echo "<th> adresse </th>";
echo "<tr> <td> lili </td>";
echo "<td> popo </td>";
echo "<td> 4, rue bobo </td> </tr>";
echo "<tr> <td> trutru </td>";
echo "<td> nolo </td>";
echo "<td> 54, rue du chomage </td> </tr>";
echo "</table>";
Mais mon souci vient au niveau de du deuxieme foreach de la fonction je pense...
ne nous donnes pas le code mais un exemple de page résultat
ex:
prenom nom adresse ville telephone
lili Du 4 rue bobo Paris 012345678
Nanie Dupont 5 place vendome Paris 061236879
Fred Astaire rue Frere Lyon 04789654123
ex:
prenom nom adresse ville telephone
lili Du 4 rue bobo Paris 012345678
Nanie Dupont 5 place vendome Paris 061236879
Fred Astaire rue Frere Lyon 04789654123
c'est déjà ce que je t'avait fait qqs post plus haut revoici le code:
<?php ///// fonctions php function vect_to_tableHTML($array){ echo "<table border='1'>"; //affichage de la ligne titre echo '<tr>'; foreach($array[0] as $titre=>$value){ //les titres de chaque colonne echo '<th>'.$titre.'</th>'; } echo '<tr>'; //affichage des lignes de valeurs du tableau foreach ($array as $index_1 => $donnee){ //affichage des donnes une ligne tr par ligne de l'array echo '<tr>'; //colonnes echo '<td>'.$donnee['prenom'].'</td><td>'.$donnee['nom'].'</td><td>'.$donnee['adresse'].'</td><td>'.$donnee['ville'].'</td><td>'.$donnee['tel'].'</td>'; echo '</tr>'; } echo "<table>"; } //////initialisation de l'array /* on va faire un array à deux dimensions premiere dimension: index 0, 1 ,2 etc, coorespondant à chaque personne deuxième dimension: pour chaque index 0,1,2 on aura un array avec omme index prenom, nom etc.. correspondant aux donnees de chaque personne */ $Coordonnee[0] = array( 'prenom'=> 'Lila', 'nom' => 'Du', 'adresse' => '4 rue Dodo', 'ville' => 'paris', 'tel' => '0146453423'); $Coordonnee[1] = array( 'prenom'=> 'Annie', 'nom' => 'Dupuy', 'adresse' => '2 av de Paris', 'ville' => 'Roissy', 'tel' => '0121345697'); $Coordonnee[2] = array( 'prenom'=> 'Pierre', 'nom' => 'Dupont', 'adresse' => 'Place bellecourt', 'ville' => 'Lyon', 'tel' => '0438965421'); //etc pour les autres personnes /////appel de la fonction vect_to_tableHTML($Coordonnee); //en lui passant en argument l'array $Coordonnee ?>
Mercii d'avance :)