par
gforce » 10 mai 2006, 11:35
bon je continue
dans les exemples que j'ai trouvés les requetes ne portent toutes que sur la même table:
$sub_spec = (isset($_POST["sub_specialization"]) && $_POST["sub_specialization"] != "tout") ? $_POST["sub_specialization"] : "";
$spec = (isset($_POST["specialization"])) ? $_POST["specialization"] : "";
$area = (isset($_POST["area"])) ? $_POST["area"] : "";
$requete= "SELECT * FROM la table WHERE 1=1 ";
if (!empty($sub_spec))
$requete .= " AND id_sub_specialization = '".$sub_spec."' ";
if (!empty($spec))
$requete .= " AND id_specialization = '".$spec."' ";
if (!empty($area))
$requete .= " AND id_area = '".$area."' ";
mais mes requetes sont sur plusieurs table comme ici:
$sql ="SELECT *
FROM office o, office_sub_specialization os, sub_specialization s, specialization sp
WHERE o.id_office=os.id_office
AND sp.id_specialization = s.id_specialization
AND os.id_sub_specialization=s.id_sub_specialization
AND s.id_sub_specialization=".$sub_spec.";";
if(isset($_POST['area']) && $_POST['area'] != -1 && $_POST['specialization'] >= 346 ){
$sql ="SELECT *
FROM office o, office_sub_specialization os, sub_specialization s, office_address oa, area a, specialization sp
WHERE o.id_office=os.id_office
AND sp.id_specialization = s.id_specialization
AND os.id_sub_specialization=s.id_sub_specialization
AND oa.id_area=a.id_area AND oa.id_office=o.id_office
AND s.id_sub_specialization=".$sub_spec."
AND a.id_area =".$area." ;";
}
if($_POST['specialization'] >= 346 ){
$sql ="SELECT * FROM office o, office_sub_specialization os, sub_specialization s, specialization sp
WHERE o.id_office=os.id_office
AND os.id_sub_specialization=s.id_sub_specialization
AND s.id_specialization=sp.id_specialization
AND sp.id_specialization=".$spec;
}
if(isset($_POST['area']) || $_POST['area'] != -1){
$sql ="SELECT *
FROM office o, office_sub_specialization os, sub_specialization s, office_address oa, area a, specialization sp
WHERE o.id_office=os.id_office
AND sp.id_specialization = s.id_specialization
AND os.id_sub_specialization=s.id_sub_specialization
AND oa.id_area=a.id_area AND oa.id_office=o.id_office
AND s.id_sub_specialization=".$sub_spec."
AND a.id_area =".$area." ;";
}
j'aimerais savoir comment je pourrais rendre le choix de mes tables aussi dynamique?
bon je continue
dans les exemples que j'ai trouvés les requetes ne portent toutes que sur la même table:
[php]
$sub_spec = (isset($_POST["sub_specialization"]) && $_POST["sub_specialization"] != "tout") ? $_POST["sub_specialization"] : "";
$spec = (isset($_POST["specialization"])) ? $_POST["specialization"] : "";
$area = (isset($_POST["area"])) ? $_POST["area"] : "";
$requete= "SELECT * FROM la table WHERE 1=1 ";
if (!empty($sub_spec))
$requete .= " AND id_sub_specialization = '".$sub_spec."' ";
if (!empty($spec))
$requete .= " AND id_specialization = '".$spec."' ";
if (!empty($area))
$requete .= " AND id_area = '".$area."' ";
[/php]
mais mes requetes sont sur plusieurs table comme ici:
[php]
$sql ="SELECT *
FROM office o, office_sub_specialization os, sub_specialization s, specialization sp
WHERE o.id_office=os.id_office
AND sp.id_specialization = s.id_specialization
AND os.id_sub_specialization=s.id_sub_specialization
AND s.id_sub_specialization=".$sub_spec.";";
if(isset($_POST['area']) && $_POST['area'] != -1 && $_POST['specialization'] >= 346 ){
$sql ="SELECT *
FROM office o, office_sub_specialization os, sub_specialization s, office_address oa, area a, specialization sp
WHERE o.id_office=os.id_office
AND sp.id_specialization = s.id_specialization
AND os.id_sub_specialization=s.id_sub_specialization
AND oa.id_area=a.id_area AND oa.id_office=o.id_office
AND s.id_sub_specialization=".$sub_spec."
AND a.id_area =".$area." ;";
}
if($_POST['specialization'] >= 346 ){
$sql ="SELECT * FROM office o, office_sub_specialization os, sub_specialization s, specialization sp
WHERE o.id_office=os.id_office
AND os.id_sub_specialization=s.id_sub_specialization
AND s.id_specialization=sp.id_specialization
AND sp.id_specialization=".$spec;
}
if(isset($_POST['area']) || $_POST['area'] != -1){
$sql ="SELECT *
FROM office o, office_sub_specialization os, sub_specialization s, office_address oa, area a, specialization sp
WHERE o.id_office=os.id_office
AND sp.id_specialization = s.id_specialization
AND os.id_sub_specialization=s.id_sub_specialization
AND oa.id_area=a.id_area AND oa.id_office=o.id_office
AND s.id_sub_specialization=".$sub_spec."
AND a.id_area =".$area." ;";
}
[/php]
j'aimerais savoir comment je pourrais rendre le choix de mes tables aussi dynamique?