Problemes pour faire une requete SQL

Problemes pour faire une requete SQL - SQL/NoSQL - Programmation

Marsh Posté le 29-05-2006 à 00:15:23    

Bonjour,
 
J'ai crée un petit site internet sous easy php pour mon bts !
Je passe Mardi à l'oral, et je dois présenter cette activité!
Mon problème est que l'une de mes requetes est fausse.
 
Plus exactement, j'ai 3 tables (BabySitter, Parent, Besoin)
Une BabySitter s'inscrit en précisant (par l'intermediaire de case à cocher) ses diponibilitées(matin, aprem, soir).
Un parent peut faire un ajout de Besoin.
Il doit alors préciser la date, et le moment (case à cocher) auquel il a besoin de quelqu'un.
 
Il y a donc 2 choses a tester:
- Il faut que si le parent coche soirée, je recupere tous les babySitter qui ont cochées au moins soirée !
- Si le code d'un babySitter se trouve deja dans la table Besoin, je teste si il est disponible à la date souhaitée, sinon pas besoin du test !
 
Voila l'une des requetes que j'ai testé, mais qui est incorrecte:

Code :
  1. $requete = "SELECT DISTINCT codeBabySitter, nomBabySitter, prenomBabySitter, telBabySitter, mobileBabySitter"
  2.      . " FROM BabySitter"
  3.      . " WHERE disponibiliteBabySitter1 = '$typeBesoin1'"
  4.      . " AND disponibiliteBabySitter2 = '$typeBesoin2'"
  5.      . " AND disponibiliteBabySitter3 = '$typeBesoin3'";
  6.      . " AND Besoin.codeBabySitter = BabySitter.codeBabySitter"
  7.      . " AND Besoin.dateBesoin <> '$dateBesoin'";


 
Merci d'avance pour votre aide !

Reply

Marsh Posté le 29-05-2006 à 00:15:23   

Reply

Marsh Posté le 29-05-2006 à 19:29:56    

lili421 a écrit :

Bonjour,
 
J'ai crée un petit site internet sous easy php pour mon bts !
Je passe Mardi à l'oral, et je dois présenter cette activité!
Mon problème est que l'une de mes requetes est fausse.
 
Plus exactement, j'ai 3 tables (BabySitter, Parent, Besoin)
Une BabySitter s'inscrit en précisant (par l'intermediaire de case à cocher) ses diponibilitées(matin, aprem, soir).
Un parent peut faire un ajout de Besoin.
Il doit alors préciser la date, et le moment (case à cocher) auquel il a besoin de quelqu'un.
 
Il y a donc 2 choses a tester:
- Il faut que si le parent coche soirée, je recupere tous les babySitter qui ont cochées au moins soirée !
- Si le code d'un babySitter se trouve deja dans la table Besoin, je teste si il est disponible à la date souhaitée, sinon pas besoin du test !
 
Voila l'une des requetes que j'ai testé, mais qui est incorrecte:

Code :
  1. $requete = "SELECT DISTINCT codeBabySitter, nomBabySitter, prenomBabySitter, telBabySitter, mobileBabySitter"
  2.      . " FROM BabySitter"
  3.      . " WHERE disponibiliteBabySitter1 = '$typeBesoin1'"
  4.      . " AND disponibiliteBabySitter2 = '$typeBesoin2'"
  5.      . " AND disponibiliteBabySitter3 = '$typeBesoin3'";
  6.      . " AND Besoin.codeBabySitter = BabySitter.codeBabySitter"
  7.      . " AND Besoin.dateBesoin <> '$dateBesoin'";


 
Merci d'avance pour votre aide !


 
Sans la structure des tables, c'est pas trop évident (je pense que les 3 "disponibilitéBabySitter" correspondent à "Matin", "AM" et "Soir" )
 
Vouloir "au-moins" un besoin, ça se traduit par des "OR" et non des "AND"...
 

Code :
  1. $requete = "SELECT DISTINCT codeBabySitter, nomBabySitter, prenomBabySitter, telBabySitter, mobileBabySitter"
  2.      . " FROM BabySitter"
  3.      . " WHERE (disponibiliteBabySitter1 = '$typeBesoin1'"
  4.      . " OR disponibiliteBabySitter2 = '$typeBesoin2'"
  5.      . " OR disponibiliteBabySitter3 = '$typeBesoin3'";)
  6.      . " AND Besoin.codeBabySitter = BabySitter.codeBabySitter" )
  7.      . " AND Besoin.dateBesoin <> '$dateBesoin'";


Message édité par Sve@r le 29-05-2006 à 21:29:02

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 29-05-2006 à 21:24:13    

ça ne fonctionne pas !!!

Reply

Marsh Posté le 29-05-2006 à 21:34:32    

lili421 a écrit :

ça ne fonctionne pas !!!


DONNE LA STRUCTURE DE TES TABLES (déjà dit !!!)
 
Surtout qu'il y a des détails pas clairs =>

lili421 a écrit :

Un parent peut faire un ajout de Besoin.<...>Si le code d'un babySitter se trouve deja dans la table Besoin


Si seul un parent peut faire l'ajout d'un besoin (sous entendu "j'ai un besoin pour le 12 au soir" ), comment le code d'un babysitter peut déjà s'y trouver ???


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 29-05-2006 à 21:50:06    

Voila mon MCD !
http://img115.imageshack.us/img115/1384/mcd5aq.jpg
 
En fait, le code baby sitter ne s'y trouve pas encore, je fais une requete sql sous php et le but est d'afficher un tableau contenant les baby sitter disponibles.
 
Par exemple, il se peut qu'un baby sitter soit deja pris le 12 au soir, auquel cas je ne l'affiche pas !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed