Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > PEAR > DB & MDB2
DB & MDB2 Forum d'entraide pour les bibliothèques DB et MDB2 du framework PEAR, permettant de manipuler les bases de données en PHP. Avant de poster -> tutoriels DB et MDB2
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/07/2007, 16h47   #1
Membre habitué
 
Homme
Développeur Web
Inscription : avril 2005
Messages : 150
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2005
Messages : 150
Points : 126
Points : 126
Par défaut [Base de données] Concaténation de champs

Bonjour

J'essaye actuellement d'afficher une liste de clients dans un tableau HTML, avec un certain nombre d'informations, notamment le commercial associé.
Pour cela, j'utilise un Structures_DataGrid que je remplis en passant par un DB_DataObject.
L'affichage fonctionne bien, seulement, pour le commercial, il y a 2 colonnes affichées, le nom et le prénom, et je voudrais les regrouper en une seule colonne. Je sais qu'en SQL, ça donnerais par exemple :
Code :
SELECT [...], comm_nom || ' ' || comm_prenom AS commercial FROM [...]
mais comment fait-on cette concaténation avec le DB_DataObject (ou le Structures_DataGrid, je sais pas) ? J'ai regardé les différences méthodes des 2 classes, mais je n'arrive pas à trouver comment concaténer 2 champs.
J'ai bien testé avec le selectAs, vu qu'on peut y rentrer un tableau de champs, mais ça modifie les champs chacun de leur côté.
bigben89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2007, 21h11   #2
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
Les bases de données sont là pour récupérer les données. Si tu veux mettre en forme ces données fait le dans le code PHP
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2007, 12h21   #3
Membre habitué
 
Homme
Développeur Web
Inscription : avril 2005
Messages : 150
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2005
Messages : 150
Points : 126
Points : 126
J'ai finalement réussi en rajoutant un nouveau champ avec le selectAdd
Code :
$client->selectAdd("concat(comm_nom, ' ', comm_prenom) as commercial")
Maintenant, ça fonctionne bien, mais bon, c'est pas top pour la portabilité ( le concat n'étant valable que pour MySQL, il me semble, ça obligerait à changer éventuellement la requête selon le SGBD utilisé ).
Par contre, si quelqu'un a une solution portable, je suis tjs preneur !
bigben89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2007, 11h55   #4
Membre habitué
 
Homme
Développeur Web
Inscription : avril 2005
Messages : 150
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2005
Messages : 150
Points : 126
Points : 126
Citation:
Les bases de données sont là pour récupérer les données. Si tu veux mettre en forme ces données fait le dans le code PHP
Effectivement, une fois réfléchi, c'était bien la meilleure solution.
J'ai tout connement modifié le formatage de la colonne correspondante du datagrid, ça m'évite finalement de faire une requête non portable.
bigben89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h19.


 
 
 
 
Partenaires

Hébergement Web