PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 15-07-2012 18:05:55

panda33
Membre
Inscription : 20-03-2012
Messages : 10

Requête entre deux dates et deux tables SQL différentes

Bonjour à tous, smile

Bénévole dans une association et débutant en php
Je cherche à réaliser un affichage en tableau PHP des adhérents
Comprise entre deux dates et deux tables SQL
Deux tables SQL, une pour les inscriptions et une pour les règlements
Point commun entre les tables le numéro adhèrent

Exemple affichage (que j'aimerai)
Code 145
(Table adhèrent)
Entête : ‘nom’ ‘prenom’ ‘date naiss’ ‘fcd’ ‘asm’ ‘section’
Liste de la famille 145 (de 1 à 6 personnes)
(Table règlement)
Entête : ’nom chq’ ‘prenom chq’ ‘date chq’ ‘banque’ ‘n° chq’ ‘montant’
Liste règlement de la famille 145 (de 1 à plusieurs règlements)

Code 178
(Table adhèrent)
Entête : ‘nom’ ‘prenom’ ‘date naiss’ ‘fcd’ ‘asm’ ‘section’
Liste de la famille 178 (de 1 à 6 personnes)
(Table règlement)
Entête : ’nom chq’ ‘prenom chq’ ‘date chq’ ‘banque’ ‘n° chq’ ‘montant’
Liste règlement de la famille 178 (de 1 à plusieurs règlements)

Et un si de suite………entre les deux dates….

PS : J’ai déjà le petit formulaire pour la sélection des dates début et fin
il y a aussi une colonne 'date inscription' dans les deux tables

J’espère avoir été assez claire dans mon explication je reste à votre disposition pour plus de détails

Merci de votre aide précieuse pour moi

Hors ligne

#2 15-07-2012 22:05:12

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Requête entre deux dates et deux tables SQL différentes

Saluton,
Ces tables ne semblent pas en formes normales, les données listes ne sont pas scalaires mais tabulaires.
Pour le reste une simple jointure entre les deux tables (sur la colonne commune) devrait faire l'affaire.
A lire : Les jointures de A à Z par SQLPro.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#3 20-07-2012 15:52:26

panda33
Membre
Inscription : 20-03-2012
Messages : 10

Re : Requête entre deux dates et deux tables SQL différentes

Bonsoir à tous
Merci Maljuna Kris pour ton aide

Après réflexion je pensais plutôt récupérer les numéros adhèrents en supprimant les doublons avec DISTINCT

Concatener le résultat dans une chaine de caractère utilisable dans une nouvelle requête pour l'affichage que j'ai besoin

c'est la que je bloque je n'arrive pas à concatener et créer la chaine de caractère utilisable dans une nouvelle requête ???

Merci encore

Hors ligne

#4 22-07-2012 09:41:52

panda33
Membre
Inscription : 20-03-2012
Messages : 10

Re : Requête entre deux dates et deux tables SQL différentes

Bonjour à Tous,

J’ai bien avancé sur mon projet, je récupère mes codes clients pour en faire une nouvelle requête
Grace à l’aide de Maljuna Kris je joins mes deux tables pour un réaffichage,
et là je bloque pour la fin de mon projet.

J’aimerai avoir le résultat suivant :

Table (inscription)                             Table (reglement)
Code client     nom      prenom           date ch            nom chq     montant chq
Famille 1          Tintin    Jose                 14/05/2012      Tintin          75,00€
Famille 1          Tintin    Anita
Famille 1          Tintin    Theo

Si possible 1 saut de ligne

Famille 2          Momo   Jose                 11/03/2012        Momo         22,00€
Famille 2          Momo   Lolo                 12/05/2012        Momo         44,00€
Famille 2          Momo   Adrien

Il peut avoir de une à plusieurs personnes de la même famille et de un à plusieurs règlements pour la même famille
Merci de votre aide et bon dimanche à tous sous le soleil

Dernière modification par panda33 (22-07-2012 09:44:01)

Hors ligne

#5 22-07-2012 22:54:13

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Requête entre deux dates et deux tables SQL différentes

Merci de nous fournir le résultat d'un SHOW CREATE TABLE sur chacune des tables participant à la jointure.

Le saut de ligne entre chaque famille, c'est de la cosmétique, qui se gère en L4G au moment du parcours du résultat (classique algorithme de saut de rupture).

Je peux déjà induire du résultat attendu que la requête devra incorporer une clause ORDER BY Code client, nom, prenom, `date ch` avec un traitement particulier (CASE) pour le classement sur la colonne `date ch` afin de tenir compte des valeurs absentes (NULL)


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#6 23-07-2012 20:49:46

panda33
Membre
Inscription : 20-03-2012
Messages : 10

Re : Requête entre deux dates et deux tables SQL différentes

Bonsoir à tous,

Merci Maljuna Kris

je suis débutant et je ne comprends pas tout j'espère que cela correspond à votre demande

SELECT `id`, `code_client`, `date`, `club`, `nbre_inscription`, `position`, `titre`, `nom`, `prenom`, `date_naissance`, `age`, `lieu_naissance`, `cp_naissance`, `adresse`, `comp_adresse`, `commune`, `cp_commune`, `telephone`, `mail`, `niv_ski`, `niv_snow`, `poids`, `taille`, `pointure`, `tour_tete`, `coti_fede`, `coti_asm`, `coti_section`, `total`, `modif_coti`, `ip_visiteur`, `type_vhl`, `immat_vhl`, `en_cours`, `date_validation` FROM `inscription` WHERE 1

et

SELECT `id`, `club`, `code_client`, `total_inscription`, `date_chq`, `nom_chq`, `prenom_chq`, `banque`, `num_chq`, `montant`, `en_cours`, `date_validation` FROM `reglement_inscription` WHERE 1

bonne soirée

Hors ligne

#7 24-07-2012 18:28:22

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Requête entre deux dates et deux tables SQL différentes

Pour le show create table voir l'explication que je viens de donner dans ce post http://forum.phpdebutant.org/viewtopic.php?id=18041


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#8 24-07-2012 23:22:04

panda33
Membre
Inscription : 20-03-2012
Messages : 10

Re : Requête entre deux dates et deux tables SQL différentes

Bonsoir à tous

je viens encore d'apprendre un truc grace à vous MERCI

Table Inscription

CREATE TABLE `inscription_ba106` (
  `id` int(5) NOT NULL AUTO_INCREMENT,  `code_client` varchar(50) NOT NULL,  `date` varchar(30) NOT NULL,  `club` varchar(10) NOT NULL,  `nbre_inscription` varchar(20) NOT NULL,
  `position` varchar(50) NOT NULL,  `titre` varchar(20) NOT NULL,  `nom` varchar(50) NOT NULL,  `prenom` varchar(50) NOT NULL,  `date_naissance` varchar(20) NOT NULL,
  `age` varchar(3) NOT NULL,  `lieu_naissance` varchar(30) NOT NULL,  `cp_naissance` varchar(10) NOT NULL,  `adresse` varchar(100) NOT NULL,  `comp_adresse` varchar(100) NOT NULL,
  `commune` varchar(20) NOT NULL,  `cp_commune` varchar(10) NOT NULL,  `telephone` varchar(20) NOT NULL,  `mail` varchar(50) NOT NULL,  `niv_ski` varchar(30) NOT NULL,
  `niv_snow` varchar(30) NOT NULL,  `poids` varchar(10) NOT NULL,  `taille` varchar(10) NOT NULL, `pointure` varchar(10) NOT NULL,  `tour_tete` varchar(10) NOT NULL,
  `coti_fede` varchar(10) NOT NULL,  `coti_asm` varchar(10) NOT NULL,  `coti_section` varchar(10) NOT NULL,  `total` varchar(10) NOT NULL,  `modif_coti` varchar(150) NOT NULL,
  `ip_visiteur` varchar(20) NOT NULL,  `type_vhl` varchar(200) NOT NULL,  `immat_vhl` varchar(50) NOT NULL,  `en_cours` varchar(50) NOT NULL,  `date_validation` date NOT NULL,
  PRIMARY KEY (`id`)) ENGINE=MyISAM AUTO_INCREMENT=105 DEFAULT CHARSET=latin1

Table règlement

CREATE TABLE `reglement_inscription` (
  `id` int(20) NOT NULL AUTO_INCREMENT,  `club` varchar(50) NOT NULL,  `code_client` varchar(50) NOT NULL,  `total_inscription` varchar(20) NOT NULL,
  `date_chq` varchar(50) NOT NULL,  `nom_chq` varchar(50) NOT NULL,  `prenom_chq` varchar(50) NOT NULL,  `banque` varchar(20) NOT NULL,  `num_chq` varchar(20) NOT NULL,
  `montant` varchar(20) NOT NULL,  `en_cours` varchar(50) NOT NULL,  `date_validation` date NOT NULL,
  PRIMARY KEY (`id`)) ENGINE=MyISAM AUTO_INCREMENT=46 DEFAULT CHARSET=latin1

Merci de votre aide

Hors ligne

#9 28-07-2012 06:37:04

panda33
Membre
Inscription : 20-03-2012
Messages : 10

Re : Requête entre deux dates et deux tables SQL différentes

Personne à une petite idée sad

bon week-end à tous

Hors ligne

#10 28-07-2012 07:53:58

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Requête entre deux dates et deux tables SQL différentes

Bonjour,

Désolé, je t'avais oublié.
Bon bien ta base est à peu près dans le même état qu'infograph, encore du bon CMS la dessous^^.
Le problème, enfin des problèmes il y en a moult, qui t'empêchent de pouvoir faire ce que tu souhaites dans de bonnes conditions.
1) Moteur MyIsam au lieu de innodb qui t'empêche de normaliser ta BD correctement et d'avoir des performances sur les FK.
2) Quand tu dis que tu souhaites éliminer des doublons via un DISTINCT, sache que l'on ne normalise pas une base avec une requête mais avec un Modèle Conceptuel de Données et un Modèle Relationnel de Données cohérent, adapté et optimisé au moins en forme normale 3FN (idéalement 4FN mini). On peut éliminer par contre des homonymes avec un DISTINCT ce qui est différent.
3) La normalisation passe par le respect de la bonne utilisation de contraintes de domaines (ex CHAR, DATETIME, ...) adapté au contexte et correctement dimensionnées, le respect de l'unicité des données, et bien d'autres que je t'invite à consulter sur wiki pour commencer. Respecter l'acidité des données n'est pas une notion facultative quand on développe.

Voilà pour l'essentiel.

++

Dernière modification par Jc (28-07-2012 07:55:49)


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

Pied de page des forums