Creer des tableaux à l'aide de fonctions
Posté : 28 févr. 2008, 00:49
Bonjour,
J'aimerai alléger mon code (enfin le nombre de ligne) de mes pages en faisant une fonction avec ce qui est le plus souvent affiché ... des tableaux (<table><tr><td> ...)
Grâce à une connaissance, nous avons essayé un truc mais l'affichage coince avec les entêtes de colonne et je me suis dit que peut-être l'on pourrait m'aider
Voici mon code:
Donc je cherche à afficher les entêtes de colonnes (je leur ai donnée un nom qui s'affiche correctement avec la fonction mit //) + pouvoir limiter le nombre de colonne à afficher ... je n'ai pas besoin d'afficher l'ID par exemple !
Voilà un programme qui me dépasse mais que j'aimerai arriver à savoir faire ... si une bonne âme pouvait me filer un coup de main
Merci
J'aimerai alléger mon code (enfin le nombre de ligne) de mes pages en faisant une fonction avec ce qui est le plus souvent affiché ... des tableaux (<table><tr><td> ...)
Grâce à une connaissance, nous avons essayé un truc mais l'affichage coince avec les entêtes de colonne et je me suis dit que peut-être l'on pourrait m'aider
Voici mon code:
// fichier php
$query = "SELECT *"
. "\n FROM #__classement_participant"
. "\n WHERE nom LIKE '" . $bout . "%'"
. "\n ORDER BY nom ASC"
;
$database->setQuery( $query );
$runnerlist = $database->loadObjectList();
classement_html::runnerlist($mosConfig_lang, $runnerlist, $link);
// fichier html
<?php
function runnerlist($lang, $runnerlist, $link) {
if ($runnerlist != '') {
echo '<br/><br/>';
classement_html::table();
list($title,) = each($runnerlist);
echo nl2br(print_r($title, true) . print_r($runnerlist, true)) ;
classement_html::ligneTitle($title);
classement_html::ligne($runnerlist);
classement_html::Endtable();
}
function table(){
echo '<table width="100%" border="0" cellspacing="10" cellpadding="0">';
}
function Endtable(){
echo '</table>';
}
function ligne(& $ligne) {
$firstline = 1;
while(list(, $objet) = each($ligne)) {
echo '<tr>';
classement_html::colonne($objet, $firstline);
echo '</tr>';
}
}
//function colonne(&$objet, &$firstline) {
//foreach($objet as $name => $value) {
//if($firstline) {
//echo '<td>'. constant('_PREFIX' . $name) . '</td>';
//$firstline = 0;
//}
//echo '<td>' . $value . '<td>';
//}
//}
function colonne(&$objet) {
foreach($objet as $name => $value) {
echo '<td>' . $value . '</td>';
}
}
function ligneTitle($title) {
foreach($title as $name) {
html_classement::colonne(constant('_PREFIX' . $name));
}
}
?>
Voicice que cela donne (1er tableau). Le 2e tableau étant fait de façon traditionnelle !Donc je cherche à afficher les entêtes de colonnes (je leur ai donnée un nom qui s'affiche correctement avec la fonction mit //) + pouvoir limiter le nombre de colonne à afficher ... je n'ai pas besoin d'afficher l'ID par exemple !
Voilà un programme qui me dépasse mais que j'aimerai arriver à savoir faire ... si une bonne âme pouvait me filer un coup de main
Merci