IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Affichage suite à une requete


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Femme Profil pro
    Webmaster
    Inscrit en
    Mars 2022
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2022
    Messages : 3
    Par défaut Affichage suite à une requete
    Bonjour,

    Je travaille sur un site de réservation de cours de tennis en ligne.
    Je dois afficher une liste avec les joueurs qui n'ont pas réservation future.

    Voici ma requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT * FROM customers
    LEFT JOIN customer_appointments ON customers-id = customer_appointments.customer_id
    LEFT JOIN appointments ON customer_appointments-appointment_id = appointments-id
    Cette requête prend tous les joueurs (customers)
    les rdv (appointments)
    et les rdv attitrés aux joueurs (customer_appointments)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    while($resultpadel=mysqli_fetch_assoc($respadel)) {
    $idadherentpadel = $resultpadel['id'];
    $fullnamepadel = $resultpadel['full_name'];
    $rdv = $resultpadel['end_date'];
    $datesj7 = date('Y-m-d h:i:s');
    if ( $rdv >=$datesj7 ) {
    echo $fullnamepadel;
    echo ' rdv futur :';
    echo $rdv;
    echo '<br>';
    } elseif ( $rdv=='') {
    echo $fullnamepadel;
    echo " sans rdv : ";
    echo $rdv;
    echo '<br>';
    } elseif ( $rdv <=$datesj7) {
    echo $fullnamepadel;
    echo " rdv passé : ";
    echo $rdv;
    echo '<br>';
    }
    $i++;
    }
    Ce qui affiche bien la liste de TOUS les joueurs avec leurs rdvs : (qqs lignes ci-dessous)
    AKAMBI Ange loic rdv passé : 2022-03-16 22:00:00
    AKAMBI Ange loic rdv passé : 2022-03-18 13:00:00
    AKAMBI Ange loic rdv passé : 2022-03-19 14:00:00
    AKAMBI Ange loic rdv passé : 2022-03-27 11:00:00
    AKAMBI Ange loic rdv futur :2022-03-30 21:00:00
    AKAMBI Ange loic rdv futur :2022-04-02 11:00:00
    AKAMBI Ange loic rdv futur :2022-04-03 11:00:00
    Albano FERNANDES rdv passé : 2022-02-27 18:00:00
    Albano FERNANDES rdv passé : 2022-03-04 20:00:00
    Albano FERNANDES rdv passé : 2022-03-01 22:00:00
    Albano FERNANDES rdv futur :2022-04-01 23:00:00
    ALBERT Alexi rdv passé : 2022-02-06 15:00:00
    Alcidio TEIXEIRA rdv passé : 2022-01-11 21:00:00
    Alcidio TEIXEIRA rdv passé : 2022-02-22 21:00:00
    Alcidio TEIXEIRA rdv passé : 2022-03-08 21:00:00
    Alcidio TEIXEIRA rdv passé : 2022-03-15 21:00:00
    Alcidio TEIXEIRA rdv passé : 2022-03-24 21:00:00
    ALEPEE Damien rdv passé : 2021-12-13 22:00:00
    ALEPEE Damien rdv passé : 2022-03-22 15:00:00

    Mais je veux retirer ceux qui ont des rdvs passés et aussi un rdv dans le futur.
    Par exemple Albano FERNANDES ni AKAMBI ne devraient pas être affichés, mais ALEPEE Damien et Alcidio Teixeira doivent rester.

    Je n'y arrive pas. Peut-être un truc à rajouter dans la requete... peut-être une solution en php. je ne vois vraiment pas.
    Aidez-moi svp

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 343
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 343
    Billets dans le blog
    17
    Par défaut
    je veux retirer ceux qui ont des rdvs passés et aussi un rdv dans le futur.
    Il faut faire une jointure entre les lignes ayant un rdv passé et les lignes ayant un rdv futur.

    Si besoin donne-nous le schéma de tes tables et un jeu de données de tests

    Ceci dit attention, car tu dis :

    Je dois afficher une liste avec les joueurs qui n'ont pas réservation future.
    je veux retirer ceux qui ont des rdvs passés et aussi un rdv dans le futur.
    Et ce n'est pas la même chose.

    Donne-nous le résultat SQL attendu également.

  3. #3
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 624
    Billets dans le blog
    10
    Par défaut
    Bonjour

    Citation Envoyé par mtah959 Voir le message
    Je dois afficher une liste avec les joueurs qui n'ont pas réservation future.
    pour ce genre de besoin, il faut utiliser un test d'existence avec EXISTS.

    Exemple

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    select CUS.Col1
         , CUS.Col2
         , [...]
         , CUS.Coln
    From customers as CUS
    where not exists
        (select 1
         from customer_appointments as CAP
         where CAP.customer_id=CUS.customer_id
           and CAP.date_reservation > curdate()
        )

    À adapter selon vos besoins.

    Note : select * est à proscrire, il ne faut utiliser que les colonnes utiles au traitement.

  4. #4
    Candidat au Club
    Femme Profil pro
    Webmaster
    Inscrit en
    Mars 2022
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2022
    Messages : 3
    Par défaut
    Bonjour,
    Désolée pour le temps de réponse.
    Voici le schema des 3 tables
    Nom : TABLE.jpg
Affichages : 173
Taille : 412,9 Ko

    Pour ce que je veux afficher :
    une liste de noms des joueurs sans ceux qui ont des rdvs futurs

    Merci de votre aide.

  5. #5
    Candidat au Club
    Femme Profil pro
    Webmaster
    Inscrit en
    Mars 2022
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2022
    Messages : 3
    Par défaut
    Quelqu'un aurait une idée svp?

  6. #6
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 624
    Billets dans le blog
    10
    Par défaut
    J'ai donné la réponse dans mon message n°3

Discussions similaires

  1. Envoyer un mail, suite à une requete multiple.
    Par Z[ee]k dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 06/07/2006, 14h06
  2. Affichage d'une requete
    Par nicoaix dans le forum Requêtes
    Réponses: 4
    Dernier message: 05/07/2006, 10h44
  3. [POO] Classe d'affichage d'une requête
    Par guidav dans le forum Langage
    Réponses: 4
    Dernier message: 17/02/2006, 15h20
  4. Limiter les affichages d'une requete avec POstgre
    Par jenny50 dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 12/01/2006, 16h26
  5. reauete suite à une requete
    Par 74160 dans le forum Requêtes
    Réponses: 4
    Dernier message: 22/08/2003, 14h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo