bonjour;
voila je viens de créer un moteur de recherche dans une base de données avec 2 requetes pratiquement similaires: l'une pour compter le nombre de résultats et l'autre pour les afficher.
Celle pour l'affichage marche très bien tandis que celle pour compter bug:
voila mon $select est la requète pour compter alors que le $sql est celle d'affichage.
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78 $select="select count(*) from $table where 1 and auteur like \"%$tabauteur[0]%\" "; if ($selectauteur != "NOT"){ for($i=1 ; $i<$nbauteur; $i++) { $sql.="$selectauteur auteur like \"%$tabauteur[$i]%\" "; } } else{ for($i=1 ; $i<$nbauteur; $i++) { $sql.="and auteur not like \"%$tabauteur[$i]%\" "; } } $sql.="and titre like \"%$tabtitre[0]%\" "; if ($selecttitre != "NOT"){ for($i=1 ; $i<$nbtitre; $i++) { $sql.="$selecttitre titre like \"%$tabtitre[$i]%\" "; } } else{ for($i=1 ; $i<$nbtitre; $i++) { $sql.="and titre not like \"%$tabtitre[$i]%\" "; } } $select.="and niveau like \"%$niveau%\" and langue like \"%$langue%\" and domaine like \"%$domaine%\""; $select.="and support like \"%$support%\" and competence like \"%$competence%\""; mysql_connect($host,$user, $passwd); mysql_select_db($db) or die ('Erreur :'.mysql_error()); $res = mysql_query($select); $Ntotal = mysql_result($res,0,0); //requète d'affichage $sql="select * from $table where 1 and auteur like \"%$tabauteur[0]%\" "; if ($selectauteur != "NOT"){ for($i=1 ; $i<$nbauteur; $i++) { $sql.="$selectauteur auteur like \"%$tabauteur[$i]%\" "; } } else{ for($i=1 ; $i<$nbauteur; $i++) { $sql.="and auteur not like \"%$tabauteur[$i]%\" "; } } $sql.="and titre like \"%$tabtitre[0]%\" "; if ($selecttitre != "NOT"){ for($i=1 ; $i<$nbtitre; $i++) { $sql.="$selecttitre titre like \"%$tabtitre[$i]%\" "; } } else{ for($i=1 ; $i<$nbtitre; $i++) { $sql.="and titre not like \"%$tabtitre[$i]%\" "; } } $sql.="and niveau like \"%$niveau%\" and langue like \"%$langue%\" and domaine like \"%$domaine%\""; $sql.="and support like \"%$support%\" and competence like \"%$competence%\""; $sql.="ORDER BY $tri $ordre, $tri2 ASC Limit $Ndeb,$Nmax "; mysql_connect($host,$user, $passwd); $result = mysql_db_query($db,$sql);
celle d'affichage marche parfaitement mais le résultats de la première est éronné:
seulement dans la première cette partie n'est pas prise en compte dans mon calcul:alors qu'elle est prise en compte dans ma 2ème requète.
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
25
26
27 if ($selectauteur != "NOT"){ for($i=1 ; $i<$nbauteur; $i++) { $sql.="$selectauteur auteur like \"%$tabauteur[$i]%\" "; echo $selectauteur .'auteur like'. $tabauteur[$i]; } } else{ for($i=1 ; $i<$nbauteur; $i++) { $sql.="and auteur not like \"%$tabauteur[$i]%\" "; } } $sql.="and titre like \"%$tabtitre[0]%\" "; if ($selecttitre != "NOT"){ for($i=1 ; $i<$nbtitre; $i++) { $sql.="$selecttitre titre like \"%$tabtitre[$i]%\" "; } } else{ for($i=1 ; $i<$nbtitre; $i++) { $sql.="and titre not like \"%$tabtitre[$i]%\" "; } }
pourtant les boucles sont bien executées
quelqu'un peu m'aider?
merci
Partager