Selection des champs

Eléphant du PHP | 440 Messages

21 déc. 2009, 21:31

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

ViPHP
ViPHP | 1996 Messages

21 déc. 2009, 21:55

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)
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Eléphant du PHP | 440 Messages

22 déc. 2009, 12:37

d'accord,

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


guigui69

Eléphant du PHP | 440 Messages

23 déc. 2009, 11:02

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

Eléphant du PHP | 440 Messages

23 déc. 2009, 13:54

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?

Petit nouveau ! | 7 Messages

23 déc. 2009, 15:27

En faisant un mysql_fetch_row()...

ViPHP
ViPHP | 1996 Messages

23 déc. 2009, 15:32

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.
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr