Page 1 sur 1

Selection des champs

Posté : 21 déc. 2009, 21:31
par guigui69
bonjour à tous,


je voudrait savoir si il est possible de réaliser sur une page web pour sélectionner les champs voulu au sein d'une requete mysql

Je m'explique: je voudrait réaliser une page php ou sa soit les personnes choisissent eu même les champs dont il veulent avoir besoin.
Après avoir valider le formulaire l'information est envoyé et la page affichée.

Est-ce réalisable? Auriez-vous des idée comment si prendre?

J'ai déjà la requête (mysql) concernée.

Merci

guigui69

Re: Selection des champs

Posté : 21 déc. 2009, 21:55
par Aureusms
Oui c'est possible.
Utilises une requête qui l'énumères les champs en fonction de ta table : (http://www.php.net/manual/fr/function.m ... d-name.php)

Re: Selection des champs

Posté : 22 déc. 2009, 12:37
par guigui69
d'accord,

Maintenant faut je trouve comment faire pour mettre les champs choisis dans ma requete.


guigui69

Re: Selection des champs

Posté : 23 déc. 2009, 11:02
par guigui69
Bonjour revient vers vous,


j'ai créer ma premiere page ou l'on selectionne les champs que l'on veut retrouver dans la requete.
Maintenant je recherche comment insert ses choix dans ma requete.

voici la requete en question:
select reclamation.id_reclamation, code_client, DATE_FORMAT(date_reclamation,'%d/%m/%Y') as date_reclamation, des_reclamation, nom_critere, id_ai, action_realise.id_ar, nom_ar, autre_ai, status_ai, nom_scritere, substring(nom_type_reclamation, 13 , 30) AS nom_type_reclamation, eva_reclamation.id_type_reclamation, id_eva_reclamation
FROM reclamation
INNER JOIN client ON client.id_client=reclamation.id_client
LEFT JOIN action_immediate ON action_immediate.id_reclamation=reclamation.id_reclamation
LEFT JOIN action_realise ON action_realise.id_ar=action_immediate.id_ar
LEFT JOIN eva_reclamation ON eva_reclamation.id_reclamation=reclamation.id_reclamation
LEFT JOIN type_reclamation ON type_reclamation.id_type_reclamation=eva_reclamation.id_type_reclamation
LEFT JOIN critere ON critere.id_critere=eva_reclamation.id_critere
LEFT JOIN scritere ON scritere.id_scritere=eva_reclamation.id_scritere
WHERE client.code_client='$code_client' AND date_reclamation between'$debut_date' AND '$fin_date' ORDER BY id_reclamation DESC
Dans le select l'ensemble des champs par defaut, comment faire pour monter cette requette.
car je voulait rajouter dans ma requete ceci:
select reclamation.id_reclamation, $_POST['code_client'], DATE_FORMAT(date_reclamation,'%d/%m/%Y') as date_reclamation, des_reclamation, nom_critere, id_ai, action_realise.id_ar, nom_ar, autre_ai, status_ai, nom_scritere, substring(nom_type_reclamation, 13 , 30) AS nom_type_reclamation, eva_reclamation.id_type_reclamation, id_eva_reclamation
FROM reclamation
INNER JOIN client ON client.id_client=reclamation.id_client
LEFT JOIN action_immediate ON action_immediate.id_reclamation=reclamation.id_reclamation
LEFT JOIN action_realise ON action_realise.id_ar=action_immediate.id_ar
LEFT JOIN eva_reclamation ON eva_reclamation.id_reclamation=reclamation.id_reclamation
LEFT JOIN type_reclamation ON type_reclamation.id_type_reclamation=eva_reclamation.id_type_reclamation
LEFT JOIN critere ON critere.id_critere=eva_reclamation.id_critere
LEFT JOIN scritere ON scritere.id_scritere=eva_reclamation.id_scritere
WHERE client.code_client='$code_client' AND date_reclamation between'$debut_date' AND '$fin_date' ORDER BY id_reclamation DESC
Probleme si le champ est vide la requete devient
select reclamation.id_reclamation, , ....
Quel méthode me conseiller-vous de prendre pour la création de la requete.

guigui69

Re: Selection des champs

Posté : 23 déc. 2009, 13:54
par guigui69
J'avance doucement,

dans la page de résultat je voudrait afficher les resultat de ma base . Est-il possible d'indiquer le N° de la champ au lieu de son nom?

Re: Selection des champs

Posté : 23 déc. 2009, 15:27
par justin_
En faisant un mysql_fetch_row()...

Re: Selection des champs

Posté : 23 déc. 2009, 15:32
par Aureusms
Bonjour,

Si tu veux dire par "indiquer le n°" , l'utilisation de mysql_fetch_row t'aidera. Si tu utilises mysql_fetch_assoc, il te donnera les résultats des champs en fonction de leur nom. Mysql_fetch_row te donnera la même chose en fonction de leur position dans la requete. L'index commence à zéro (0). Ainsi dans ta requete :

Code : Tout sélectionner

SELECT reclamation.id_reclamation, code_client, DATE_FORMAT(date_reclamation,'%d/%m/%Y') AS date_reclamation, des_reclamation, nom_critere, id_ai, action_realise.id_ar, nom_ar, autre_ai, status_ai, nom_scritere, substring(nom_type_reclamation, 13 , 30) AS nom_type_reclamation, eva_reclamation.id_type_reclamation, id_eva_reclamation
reclamation.id_reclamation aura l'index 0
code_client aura l'index 1
etc.

De cette façon pas besoin de mettre les "AS date_reclamation" vu que interrogeras le numéro d'index.
Dernière chose : tu peux utiliser les deux en même temps avec mysql_fetch_array mais cela prend plus de ressources.