aide en php/sql

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : aide en php/sql

Re: aide en php/sql

par xTG » 20 févr. 2015, 16:45

administrateur réseau et donner des url de ce type C:\Users\KOUTONDI%20JP\Desktop\coco ?????????????????
Non, étudiant si tu as bien lu.

Re: aide en php/sql

par tof73 » 20 févr. 2015, 16:26

administrateur réseau et donner des url de ce type C:\Users\KOUTONDI%20JP\Desktop\coco ?????????????????

Re: aide en php/sql

par chancyaa » 20 févr. 2015, 09:49

bjr merci les conseils. Yann18 [url]C:\Users\KOUTONDI%20JP\Desktop\coco[/url] voici en fait ma premiere interface qui affiche les états de paiements de tous les étudiants. mais je dois déjà faire une seconde qui présente juste les étudiants qui ont déjà tous payés.


NB: je suis un debutant en programmation web, je suis un administrateur réseau, cette projet est mon sujet de soutenance pour mon BTS en réseau

Re: aide en php/sql

par sirakawa » 19 févr. 2015, 19:54

La formation n'a jamais parlé des Formes normales? cf http://fr.wikipedia.org/wiki/Forme_norm ... nnelles%29
Et n'a pas dit qu'il ne faut plus utiliser (en PHP) Mysql mais mysqli? cf http://php.net/manual/fr/mysqlinfo.api.choosing.php

Re: aide en php/sql

par chancyaa » 19 févr. 2015, 19:40

Dans la formation que j'ai eu, on n'a pas pu faire les requêtes évoluées, on s'est arrêté au requête de base donc je suis un peu perdu

Re: aide en php/sql

par yann18 » 19 févr. 2015, 14:22

bonjour,
ta requête de départ est syntaxiquement fausse car un groupement fait toujours appel à tous les champs présents(exceptées les fonctions d'agrégation comme SUM(), AVG()...) dans le select.Donc on aurait dû voir dans le groupement les champs suivants IDEtu,NomEtu,Nom_Type_Paie,Montant_Type_Paie.toutefois si tu veux faire figurer dans ton select les champs qui ne seront pas concernés par le groupement il te faut utiliser la fonction GROUP_CONCAT().
En pratique une simple jointure entre la table étudiants et la table paiements pouvait déterminer les étudiants qui ont payé leur scolarité.Après
sur quoi te bases-tu pour déterminer qu'un étudiant ait payé sa scolarité?quelle colonne stocke l'information sur la scolarité?

Ne connaissant pas ton SI, je t'écris une requête qui pourrait ressembler à ce que souhaites faire:
$ReqSelect_Paie = "SELECT IDEtu,NomEtu,GROUP_CONCAT(Nom_Type_Paie,Montant_Type_Paie),sum(MontantPaie) AS MontantPaie
                   FROM paiements,nature_paie,etudiants
                   WHERE paiements.IDEtu = etudiants.MatEtu                                                       
                   AND paiements.NaturePaiement = nature_paie.ID_Type_Paie
                   AND NaturePaiement LIKE 'FS%'
                   GROUP BY MatEtu, NomEtu
		   HAVING sum(MontantPaie)>0 ";
en même temps je conseille d'utiliser les jointures évoluées ou SQL2( JOIN, LEFT JOIN,...) car elles sont plus rapides que la clause WHERE

Re: aide en php/sql

par chancyaa » 19 févr. 2015, 09:37

CREATE TABLE IF NOT EXISTS `etudiants` (
`MatEtu` varchar(50) NOT NULL,
`PhotoEtu` varchar(255) DEFAULT NULL,
`NomEtu` varchar(255) DEFAULT NULL,
`PrenomEtu` varchar(255) DEFAULT NULL,
`DateNais` date DEFAULT NULL,
`LieuNais` varchar(255) DEFAULT NULL,
`GenreEtu` varchar(255) DEFAULT NULL,
`NationEtu` varchar(255) DEFAULT NULL,
`BacEtu` varchar(255) DEFAULT NULL,
`AdresseEtu` varchar(255) DEFAULT NULL,
`datearrivee` date NOT NULL,
`Etat` varchar(255) DEFAULT NULL,
`datedepart` datetime DEFAULT NULL,
PRIMARY KEY (`MatEtu`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;



CREATE TABLE IF NOT EXISTS `nature_paie` (
`ID_Type_Paie` varchar(50) NOT NULL,
`Nom_Type_Paie` varchar(255) NOT NULL,
`Montant_Type_Paie` int(10) NOT NULL,
PRIMARY KEY (`ID_Type_Paie`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE IF NOT EXISTS `paiements` (
`IDEtu` varchar(50) NOT NULL,
`AnneePaie` varchar(50) NOT NULL,
`DatePaie` date NOT NULL,
`NaturePaiement` varchar(50) NOT NULL,
`MontantPaie` int(255) NOT NULL,
PRIMARY KEY (`IDEtu`,`AnneePaie`,`DatePaie`),
KEY `paiements_ibfk_1` (`IDEtu`),
KEY `paiements_ibfk_2` (`AnneePaie`),
KEY `paiements_ibfk_3` (`NaturePaiement`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

voici la structuer des trois tables qui doivent nous permet la gestion des paiements

Re: aide en php/sql

par Aureusms » 19 févr. 2015, 09:26

Bonjour,

Je ne peux accèder à l'image et secondement, pour bien faire, il faut les structures de la base de données sinon on ne peut pas faire grand chose.

Re: aide en php/sql

par chancyaa » 19 févr. 2015, 06:30

bjr Aureusms voici l'interface qui s'affiche pour le moment mais j'ai juste besoin d'afficher les étudiants qui ont déjà [img]C:\Users\KOUTONDI%20JP\Desktop\coco[/img]

Re: aide en php/sql

par Aureusms » 18 févr. 2015, 21:52

Essayes :

Code : Tout sélectionner

$ReqSelect_Paie = "SELECT IDEtu,NomEtu,Nom_Type_Paie,Montant_Type_Paie,sum(MontantPaie) AS MontantPaie FROM paiements,nature_paie,etudiants WHERE paiements.IDEtu = etudiants.MatEtu AND paiements.NaturePaiement = nature_paie.ID_Type_Paie AND NaturePaiement LIKE 'FS%' AND MontantPaie != 0 GROUP BY MatEtu, NomEtu;";

aide en php/sql

par chancyaa » 18 févr. 2015, 20:05

$ReqSelect_Paie = "SELECT IDEtu,NomEtu,Nom_Type_Paie,Montant_Type_Paie,sum(MontantPaie) AS MontantPaie
												FROM paiements,nature_paie,etudiants 
												WHERE paiements.IDEtu = etudiants.MatEtu							
												AND paiements.NaturePaiement = nature_paie.ID_Type_Paie
												AND NaturePaiement LIKE 'FS%'
												GROUP BY MatEtu, NomEtu;";
$Nom_Type_Paie= $DataPaie['Montant_Type_Paie'];
														$MontantPaie= $DataPaie['MontantPaie'];
														$result= $Nom_Type_Paie-$MontantPaie;
														
													echo '<td>'.($result).'</td>
bsr svp ce code php permet d'afficher les etats de paiements en general de tous les etudiants. mais j'ai besoin de deja de juste afficher les etudiants qui ont dejà tous payé leur scolarité