|
Sujet : [ php ] jointures problemes |
| omega2 |
ludo2604 a écrit a écrit :
bah c bon ça marche maintenant il me reste un dernier truc à faire si tu peux m'aider...
bon ca ca compte tout une table: count(*)
mais quand on a des jointures dans la requete comment je peux compter qu'une tble?
|
count(table.*) ?
Mais ca te doneras soit le nombre de ligne retourné par la requête, soit le nombre de ligne de la table spécifié qui sont retourné par la requête, soit le nombre de ligne de la table, soit le nombre de ligne de la table qui corespondent à chaque ligne retourné par la requête (s'il n'y a que des distinct, des sum et autres trucs du genre sur une des autres tables de la requête).
Entre les trois permières possibilités, je sais plus quelles sont celles qui sont parfois retrouné par les requêtes, pour la dernière, je sais qu'on peut arrivé à avoir ce résultat là mais c'est parfois dur d'y arriver. ;) |
| Sh@rdar |
pour mon moteur de recherche d'article dans une boutique en ligne :
Code :
- $Req = "SELECT DISTINCTROW
- $Articles_Tbl.Id, $Articles_Tbl.Prix, $Articles_Tbl.Cat1, $Articles_Tbl.Cat2, $Articles_Tbl.Code_Interne,
- $Articles_Tbl.Dispo, $Articles_Tbl.Promo, $Articles_Tbl.Poids, $Articles_Tbl.Tva, $Desc_articles_Tbl.Nom_$Lang,
- $Desc_articles_Tbl.Desc_$Lang, $Fournisseur_Tbl.Nom as Fournisseur, $Categories_Tbl.Lvl
- FROM $Articles_Tbl
- LEFT JOIN $Desc_articles_Tbl ON $Articles_Tbl.Id = $Desc_articles_Tbl.Idx
- LEFT JOIN $Fournisseur_Tbl ON $Fournisseur_Tbl.Id = $Articles_Tbl.Fournisseur
- LEFT JOIN $Categories_Tbl ON $Categories_Tbl.Id=$Articles_Tbl.Cat1
- WHERE $Articles_Tbl.Visible=1 ";
- // MODIFICATION DE LA REQUETE EN FONCTION DES PARAMETRES DE LA PAGE DE RECHERCHE AVANCEE
- if ($HTTP_POST_VARS["search"]=="Lancer la recherche" ) {
- if ($HTTP_POST_VARS["Cat"]!=0) $Req .= "AND $Articles_Tbl.Cat1=".$HTTP_POST_VARS["Cat"]." OR $Articles_Tbl.Cat2=".$HTTP_POST_VARS["Cat"];
- if (isset($HTTP_POST_VARS["Ref"]) && $HTTP_POST_VARS["Ref"]!='') $Req .= "AND $Articles_Tbl.Code_interne LIKE '%".$HTTP_POST_VARS["Ref"]."%' ";
- if ($HTTP_POST_VARS["Fournisseur"]!=0) $Req .= " AND $Articles_Tbl.Fournisseur=".$HTTP_POST_VARS["Fournisseur"];
- if ($HTTP_POST_VARS["Dispo"]>=0) $Req .= " AND $Articles_Tbl.Dispo >=".$HTTP_POST_VARS["Dispo"];
- if(isset($HTTP_POST_VARS["Prix_Min"]) && $HTTP_POST_VARS["Prix_Min"]!='') $Prix_min = str_replace(",",".",$HTTP_POST_VARS["Prix_Min"]);
- if(isset($HTTP_POST_VARS["Prix_Max"]) && $HTTP_POST_VARS["Prix_Max"]!='') $Prix_max = str_replace(",",".",$HTTP_POST_VARS["Prix_Max"]);
- if ($HTTP_POST_VARS["tva"]==1) {
- $Prix_min = number_format((100*$Prix_min)/($Tva[0]+100),2);
- $Prix_max = number_format((100*$Prix_max)/($Tva[0]+100),2);
- }
- if ($HTTP_POST_VARS["Prix_Min"]!='' && $HTTP_POST_VARS["Prix_Max"]!='') $Req .= " AND $Articles_Tbl.Prix BETWEEN $Prix_min AND $Prix_max ";
- elseif ($HTTP_POST_VARS["Prix_Min"]!='' && $HTTP_POST_VARS["Prix_Max"]=='') $Req .= " AND $Articles_Tbl.Prix >= $Prix_min ";
- elseif ($HTTP_POST_VARS["Prix_Min"]=='' && $HTTP_POST_VARS["Prix_Max"]!='') $Req .= " AND $Articles_Tbl.Prix <= $Prix_max";
- if ($HTTP_POST_VARS["Promo"]==1) $Req.= " AND $Artcles_Tbl.Promo!=0";
- if ($HTTP_POSt_VARS["Focus"]==1) $Req .= " AND $Articles_Tbl.Focus!=0";
- $Keywords = $HTTP_POST_VARS["Keywords"];
- if ($Keywords!='') {
- $Keywords = explode(" ",$Keywords);
- $Req .= "AND ( $Desc_articles_Tbl.Desc_$Lang LIKE '%".$Keywords[0]."%' OR $Desc_articles_Tbl.Nom_$Lang LIKE '%".$Keywords[0]."%' OR $Desc_articles_Tbl.Spectech_$Lang LIKE '%".$Keywords[0]."%'";
- for ($i = 1 ; $i<count($Keywords) ; $i++) {
- $Req .= " OR $Desc_articles_Tbl.Desc_$Lang LIKE '%".$Keywords[0]."%' OR $Desc_articles_Tbl.Nom_$Lang LIKE '%".$Keywords[0]."%' OR $Desc_articles_Tbl.Spectech_$Lang LIKE '%".$Keywords[0]."%'";
- }
- $Req .= " )";
- }
- }
|
|