php/mysql : Afficher champs d'une table figurant dans les cellules d'une autre table
Dernière réponse : dans Programmation
Bonjour tous,
Alors le titre n'est peu être pas très explicite, je détail :
j'ai 2 tables sql :
TBL_HOTEL : x champs
TBL_HOTEL_SECTION_TYPE :
1 champs Col_name dont les valeurs sont les noms des champs de ma table TBL_HOTEL
1 champs Col_show (valeur 0 ou 1) associé
le but est que lorsque dans TBL_HOTEL_SECTION_TYPE Col_show = 1 j'affiche la colonne de TBL_HOTEL souhaité. Le but final étant dans une interface admin de choisir les champs que je souhaite afficher ou non sur mon tableau principal.
Pour le moment j'arrive à le faire mais je bloque sur une concaténation de variable... si vous avez des idées (peu être un meilleur moyen d'accéder à ce que je souhaite)je suis prenneur, voici le bout de code en question :
merci pour votre aide !
Kaym
Alors le titre n'est peu être pas très explicite, je détail :
j'ai 2 tables sql :
TBL_HOTEL : x champs
TBL_HOTEL_SECTION_TYPE :
1 champs Col_name dont les valeurs sont les noms des champs de ma table TBL_HOTEL
1 champs Col_show (valeur 0 ou 1) associé
le but est que lorsque dans TBL_HOTEL_SECTION_TYPE Col_show = 1 j'affiche la colonne de TBL_HOTEL souhaité. Le but final étant dans une interface admin de choisir les champs que je souhaite afficher ou non sur mon tableau principal.
Pour le moment j'arrive à le faire mais je bloque sur une concaténation de variable... si vous avez des idées (peu être un meilleur moyen d'accéder à ce que je souhaite)je suis prenneur, voici le bout de code en question :
$reqwhichshow = mysql_query('SELECT * FROM TBL_HOTEL_SECTION_TYPE WHERE Col_show= "1" ') or die('Erreur SQL !<br>'.mysql_error()); $nba = "0"; { $entete_main[$nba] = $reswhichshow['Col_name']; echo '<th>'.$entete_main[$nba].'</th>'; // affiche entete du tableau : liste des champs à afficher $nba++; } // c'est ici que le problème se pose je ne sais pas comment concaténer les variables de ma boucle while // $concatres = ' '.$entete_main[0].','.$entete_main[1].','.$entete_main[2].','.$entete_main[3].','.$entete_main[4].' '; //test manuel $reqwhichshow = mysql_query('SELECT '.$concatres.' FROM TBL_HOTEL') or die('Erreur SQL !<br>'.mysql_error()); // requete pour afficher les données de la table principale
merci pour votre aide !
Kaym
Autres pages sur : php mysql afficher champs table figurant cellules table
0kaym0 a édité ce message
Lassé par la pub ? Créez un compte
Si ça intéresse quelqu'un un jour j'ai trouvé ma solution : fonction implode()
Kaym
{ echo '<th>'.$reswhichshow['Col_name'].'</th>'; $column_names[] = $reswhichshow['Col_name']; // j'ajoute les valeur une à une dans mon tableau } // je concatène les valeur en y ajoutant une virgule afin d'avoir une chaine qui pourra être insérée dans ma requete $reqwhichshow = mysql_query('SELECT '.$select_columns.' FROM TBL_HOTEL') or die('Erreur SQL !<br>'.mysql_error());
Kaym
0kaym0 a édité ce message
Salut et merci deux fois : pour avoir mis ton poste en forme, et pour être revenu avec une solution.
Celle-ci est excellente.
Toutefois, j'attire ton attention sur celle que je te propose, qui est triviale, et qui fonctionne dans TOUS les langages, même ceux qui ne possèderaient pas d'équivalent à implode() :
Tu te retrouves à l'issue avec une liste commençant par un séparateur, qu'il suffit de supprimer :
Celle-ci est excellente.
Toutefois, j'attire ton attention sur celle que je te propose, qui est triviale, et qui fonctionne dans TOUS les langages, même ceux qui ne possèderaient pas d'équivalent à implode() :
$champs = ''; while (...) { ... $champs .= ', '.$champ; }
Tu te retrouves à l'issue avec une liste commençant par un séparateur, qu'il suffit de supprimer :
zeb a édité ce message
Lassé par la pub ? Créez un compte