As-tu fait TOUTES les modifications indiquées ICI ?
Peux-tu redonner TOUT ton code ?
Version imprimable
As-tu fait TOUTES les modifications indiquées ICI ?
Peux-tu redonner TOUT ton code ?
bonsoir jreaux62
voila code de la page complete
Code:
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160 <?php require_once('Connections/cnx3.php'); ?> <?php if (!function_exists("GetSQLValueString")) { function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") { if (PHP_VERSION < 6) { $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue; } $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue); switch ($theType) { case "text": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "long": case "int": $theValue = ($theValue != "") ? intval($theValue) : "NULL"; break; case "double": $theValue = ($theValue != "") ? doubleval($theValue) : "NULL"; break; case "date": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "defined": $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; break; } return $theValue; } } $currentPage = $_SERVER["PHP_SELF"]; $maxRows_Recordset1 = 10; $pageNum_Recordset1 = 0; if (isset($_GET['pageNum_Recordset1'])) { $pageNum_Recordset1 = $_GET['pageNum_Recordset1']; } $startRow_Recordset1 = $pageNum_Recordset1 * $maxRows_Recordset1; // si venant du FORMULAIRE if(isset($_POST['combo3'])){ $combo3 = $_POST['combo3']; } // venant de la PAGINATION (via URL) elseif(isset($_GET['combo3'])){ $combo3 = urldecode($_GET['combo3']); } else { $combo3 = ''; // (valeur par defaut) } // -------------------------- if(isset($_POST['combo4'])){ // si venant du FORMULAIRE $combo4 = $_POST['combo4']; } elseif(isset($_GET['combo4'])){ // si venant du FORMULAIRE $combo4 = urldecode($_GET['combo4']); } else { $combo4 = ''; // (valeur par defaut) } // Pour utilisation dans une REQUÊTE SQL -> PROTECTION CONTRE injection SQL $combo3_bd = mysql_real_escape_string($combo3); $combo4_bd = mysql_real_escape_string($combo4); // => CE SONT CES VARIABLES $combo3_bd ET $combo4_bd qu'il faut utiliser dans LA REQUÊTE ! // -------------------------- mysql_select_db($database_cnx3, $cnx3); $query_Recordset1 = "SELECT SUM( quantite ) AS SOMME, nom FROM lignescommande a, commande b, client c WHERE a.id_cmd = b.id_cmd AND b.id_cl = c.id_cl AND date BETWEEN '$combo3_bd' AND '$combo4_bd' GROUP BY c.id_cl"; $query_limit_Recordset1 = sprintf("%s LIMIT %d, %d", $query_Recordset1, $startRow_Recordset1, $maxRows_Recordset1); $Recordset1 = mysql_query($query_limit_Recordset1, $cnx3) or die(mysql_error()); $row_Recordset1 = mysql_fetch_assoc($Recordset1); if (isset($_GET['totalRows_Recordset1'])) { $totalRows_Recordset1 = $_GET['totalRows_Recordset1']; } else { $all_Recordset1 = mysql_query($query_Recordset1); $totalRows_Recordset1 = mysql_num_rows($all_Recordset1); } $totalPages_Recordset1 = ceil($totalRows_Recordset1/$maxRows_Recordset1)-1; $queryString_Recordset1 = ""; if (!empty($_SERVER['QUERY_STRING'])) { $params = explode("&", $_SERVER['QUERY_STRING']); $newParams = array(); foreach ($params as $param) { if (stristr($param, "pageNum_Recordset1") == false && stristr($param, "totalRows_Recordset1") == false) { array_push($newParams, $param); } } if (count($newParams) != 0) { $queryString_Recordset1 = "&" . htmlentities(implode("&", $newParams)); } } $queryString_Recordset1 = sprintf("&totalRows_Recordset1=%d%s", $totalRows_Recordset1, $queryString_Recordset1); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Les Clients2</title> <link rel="stylesheet" type="text/css" href="style.css" /> </head> <body> <div class="globale"> <div class="entete"> </div><!-- division entête !--> <?php require_once("menuH.php")?> <!-- menu guache !--> <?php require_once("menuGuache.php")?> <div class="contenu"> <center> <table border="3"> <tr> <td>NOM</td> <td>QUANTITE</td> </tr> <?php do { ?> <tr> <td><?php echo $row_Recordset1['nom']; ?></td> <td><?php echo $row_Recordset1['SOMME']; ?></td> </tr> <?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?> </table> <?php $transmission_variables = '&combo3='.urlencode($combo3).'&combo4='.urlencode($combo4); ?> <p> <a href="<?php printf("%s?pageNum_Recordset1=%d%s", $currentPage, 0, $queryString_Recordset1).$transmission_variables; ?>">Premier</a> <a href="<?php printf("%s?pageNum_Recordset1=%d%s", $currentPage, max(0, $pageNum_Recordset1 - 1), $queryString_Recordset1).$transmission_variables; ?>">Précédent</a> <a href="<?php printf("%s?pageNum_Recordset1=%d%s", $currentPage, min($totalPages_Recordset1, $pageNum_Recordset1 + 1), $queryString_Recordset1).$transmission_variables; ?>">Suivant</a> <a href="<?php printf("%s?pageNum_Recordset1=%d%s", $currentPage, $totalPages_Recordset1, $queryString_Recordset1).$transmission_variables; ?>">Dernier</a> </p> </center> </div> <!-- division contenu !--> <!-- menu droite !--> <?php require_once("menuDroite.php")?> <!-- pied !--> <?php require_once("pied1.php")?> </div> <!-- division globale !--> </body> </html> <?php mysql_free_result($Recordset1); ?>
Bonsoir,
tu n'as pas d'affichage des erreurs ??
Il y avait des erreurs dans le code que j'avais donné : des ) et } manquants !
Il faut remplacer par :
Code:
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 <?php // -------------------------- // récupération de variable : if(isset($_POST['combo3'])) { // si venant du FORMULAIRE $combo3 = $_POST['combo3']; } elseif(isset($_GET['combo3'])) { // venant de la PAGINATION (via URL) $combo3 = urldecode($_GET['combo3']); } else { $combo3 = ''; // (valeur par defaut) } // -------------------------- if(isset($_POST['combo4'])) { // si venant du FORMULAIRE $combo4 = $_POST['combo4']; } elseif(isset($_GET['combo4'])) { // si venant du FORMULAIRE $combo4 = urldecode($_GET['combo4']); } else { $combo4 = ''; // (valeur par defaut) } // -------------------------- // Pour utilisation dans une REQUÊTE SQL -> PROTECTION CONTRE injection SQL $combo3_bd = mysql_real_escape_string($combo3); $combo4_bd = mysql_real_escape_string($combo4); // => CE SONT CES VARIABLES $combo3_bd ET $combo4_bd qu'il faut utiliser dans LA REQUÊTE ! // -------------------------- ?>
bonsoir
si si il y avait des erreurs,j'ai bien corrige ces erreur de colades et parentheses..
Maintenant, ca doit fonctionner, non ?
malheuresement non :cry:
j ai fais des echo sur $transmission_variables ,il se vide quand on passe a la page suivante ou ...pagination..
j ai fait beaucoup des modifecations ..ca n'a rien change... en fin Ctrl Z pour revenir au code principale...
dans l url de pagination avant $transmission_variables il y a un POINT ou bien point d'interogation.??
bonjour
j'ai lu qlq part que ca arrive des problemes de pagination quand le code est ecrit par dreamweaver parceque ce dernier rencontre des dificultes
quand il contient parmi son code une requete SQL contenant des variables,
bon je sais pas si ca est vrai ou pas
donc j ai choisi un autre chemin voila el code
Code:
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 require_once('Connections/cnx3.php'); $messages_par_page=10; //Nom de la page ou s'affiche vos articles ex:page.php $nom_page="ventes33.php"; $donnees_total=mysql_fetch_assoc($entree_total); //On rcupre le total pour le placer dans la variable $total. $total correspond au //nombre total de commentaires $total=$donnees_total['i']; //Nous allons maintenant compter le nombre de pages. On fait donc une simple division . //ceil >Arrondit le chiffre au nombre suprieur si il n'est pas entier $nombre_de_pages=ceil($total/$messages_par_page); // Si la variable $_GET['page'] existe... if(isset($_GET['page'])) { //$page_actuelle correspond au numro de la page ou l'on se trouve pendant la navigation. //intval Retourne la valeur numrique entire quivalente d'une variable $page_actuelle=intval($_GET['page']); //Si la valeur de $page_actuelle est plus grande que $nombre_de_pages... if($page_actuelle>$nombre_de_pages) { $page_actuelle=$nombre_de_pages; } } // Sinon else { $page_actuelle=1; // La page actuelle est la n1 } // On calcul la premire entre lire $premiere_entree=($page_actuelle-1)*$messages_par_page; mysql_select_db($database_cnx3, $cnx3); mysql_select_db($database_cnx3) or die (mysql_error()); $retour_messages=mysql_query("SELECT SELECT SUM( quantite ) AS SOMME, nom FROM lignescommande a, commande b, client c WHERE a.id_cmd = b.id_cmd AND b.id_cl = c.id_cl AND date BETWEEN '$combo3_bd' AND '$combo4_bd' GROUP BY c.id_cl DESC LIMIT '$premiere_entree'.'$messages_par_page.'");
attention certains lignes commentaires sont pas convenablesn :) j'en travail sur...Code:
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 if($total == 0){ echo '<p><strong>Aucun article pour le moment :(!</strong></p>'; } //On boucle while($affiche = mysql_fetch_array($retour_messages)) { echo '<div class="cadre"> <h2><a title="'.$affiche["nom"].'" href="'.$nom_page.'?id='.$affiche["SOMME"] .'">'.$affiche['nom'].'</a></h2> '.nl2br($affiche['SOMME']).' </div>'; } //Pour l'affichage, on centre la liste des pages echo '<div style="text-align:center;">'; $navigation=0; if($navigation==0){ //Cette partie affiche uniquement Suivant et Prcdent $suivant=$page_actuelle+1; $precedent=$page_actuelle-1; //Si la variable est plus grand ou gal if($precedent>=1){ echo '<a class="pagination" title="Page precedente" href="'.$_SERVER['PHP_SELF'].'?page='.$precedent.'">Page prcdent</a>'; } else { echo '<span class="pagination-inactif">Page prcdent</span>'; } //Si la variable est plus petit ou gal if($suivant<=$nombre_de_pages){ echo '<a class="pagination" title="Page suivante" href="'.$_SERVER['PHP_SELF'].'?page='.$suivant.'">Page suivante</a>'; } else { echo '<span class="pagination-inactif">Page suivante</span>'; } } else if($navigation==1) { //Cette partie affiche une pagination complte de toutes les pages echo 'Page : '; for($i=1; $i<=$nombre_de_pages; $i++) //On fait notre boucle { //On va faire notre condition if($i==$page_actuelle) //Si il s'agit de la page actuelle... { echo '<span class="pagination-inactif">'.$i.'</span>'; } else { echo ' <a class="pagination" title="Page '.$i.'" href="'.$_SERVER['PHP_SELF'].'?page='.$i.'">'.$i.'</a> '; } } } echo '</div>'; mysql_close(); ?>
voila l'erreur qui s'sffiche
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\Program Files\EasyPHP-5.3.6.0\www\prj\ventes33.php on line 113
line 113 =merciCode:
1
2
3
4
5 while($affiche = mysql_fetch_array($retour_messages)) { echo '<div class="cadre"> <h2><a title="'.$affiche["nom"].'" href="'.$nom_page.'?id='.$affiche["SOMME"] .'">'.$affiche['nom'].'</a></h2> '.nl2br($affiche['SOMME']).' </div>'; }
Code:
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149 <?php require_once('Connections/cnx3.php'); mysql_select_db($database_cnx3, $cnx3); // -------------------------- // Pour Pagination $currentPage = $_SERVER['PHP_SELF']; $maxRows_Recordset1 = 10; // -------------------------- // pageNum_Recordset1 : if (isset($_GET['pageNum_Recordset1']) && is_numeric($_GET['pageNum_Recordset1'])) { // venant de la PAGINATION (via URL) $pageNum_Recordset1 = intval($_GET['pageNum_Recordset1']); } else { // (valeur par defaut) $pageNum_Recordset1 = 0; } // -------------------------- $startRow_Recordset1 = $pageNum_Recordset1 * $maxRows_Recordset1; // -------------------------- // combo3 : if(isset($_POST['combo3']) && $_POST['combo3']!=''){ // si venant du FORMULAIRE $combo3 = $_POST['combo3']; } elseif(isset($_GET['combo3']) && $_GET['combo3']!=''){ // venant de la PAGINATION (via URL) $combo3 = urldecode($_GET['combo3']); } else { // (valeur par defaut) $combo3 = ''; } // -------------------------- // combo4 : if(isset($_POST['combo4']) && $_POST['combo4']!=''){ // si venant du FORMULAIRE $combo4 = $_POST['combo4']; } elseif(isset($_GET['combo4']) && $_GET['combo4']!=''){ // venant de la PAGINATION (via URL) $combo4 = urldecode($_GET['combo4']); } else { // (valeur par defaut) $combo4 = ''; } // -------------------------- // Pour utilisation dans une REQUÊTE SQL -> PROTECTION CONTRE injection SQL $bd_combo3 = mysql_real_escape_string($combo3); $bd_combo4 = mysql_real_escape_string($combo4); // => CE SONT CES VARIABLES qu'il faut utiliser dans LES REQUÊTES // -------------------------- // Nombre total enregistrements if (isset($_GET['totalRows_Recordset1']) && is_numeric($_GET['totalRows_Recordset1'])) { // venant de l URL $totalRows_Recordset1 = intval($_GET['totalRows_Recordset1']); } else { // REQUETE : total enregistrement $query_all_Recordset1 = "SELECT SUM(quantite) AS SOMME, nom FROM lignescommande a, commande b, client c WHERE a.id_cmd = b.id_cmd AND b.id_cl = c.id_cl AND date BETWEEN '".$bd_combo3."' AND '".$bd_combo4."' GROUP BY c.id_cl ;"; $all_Recordset1 = mysql_query($query_all_Recordset1) or die('Erreur SQL :<br />'.$query_all_Recordset1.'<br />'.mysql_error()); $totalRows_Recordset1 = mysql_num_rows($all_Recordset1); } // Nombre total de pages $totalPages_Recordset1 = ceil($totalRows_Recordset1/$maxRows_Recordset1)-1; // -------------------------- // REQUETE : enregistrements à afficher (pagination) $query_limit_Recordset1 = "SELECT SUM(quantite) AS SOMME, nom FROM lignescommande a, commande b, client c WHERE a.id_cmd = b.id_cmd AND b.id_cl = c.id_cl AND date BETWEEN '".$bd_combo3."' AND '".$bd_combo4."' GROUP BY c.id_cl LIMIT ".$startRow_Recordset1.", ".$maxRows_Recordset1." ;"; $Recordset1 = mysql_query($query_limit_Recordset1, $cnx3) or die('Erreur SQL :<br />'.$query_limit_Recordset1.'<br />'.mysql_error()); $row_Recordset1 = mysql_fetch_assoc($Recordset1); // -------------------------- // PAGINATION : PARAMETRES SUPPLEMENTAIRES $queryString_Recordset1 = ''; $queryString_Recordset1 .= '&totalRows_Recordset1='.$totalRows_Recordset1; $queryString_Recordset1 .= '&combo3='.urlencode($combo3); $queryString_Recordset1 .= '&combo4='.urlencode($combo4); // -------------------------- ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Les Clients2</title> <link rel="stylesheet" type="text/css" href="style.css" /> </head> <body> <div class="globale"> <!-- division entête !--> <div class="entete"> </div> <!-- menu horizontal !--> <?php require_once("menuH.php")?> <!-- menu gauche !--> <?php require_once("menuGuache.php")?> <!-- division contenu !--> <div class="contenu" style="margin:0 auto;"> <!-- AFFICHAGE RESULTATS --> <table border="3"> <thead> <tr> <th>NOM</th> <th>QUANTITE</th> </tr> </thead> <tbody> <?php while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)) { ?> <tr> <td><?php echo $row_Recordset1['nom']; ?></td> <td><?php echo $row_Recordset1['SOMME']; ?></td> </tr> <?php } mysql_free_result($Recordset1); ?> </tbody> </table> <!-- PAGINATION --> <p> <a href="<?php printf("%s?pageNum_Recordset1=%d%s", $currentPage, 0, $queryString_Recordset1); ?>">Premier</a> <a href="<?php printf("%s?pageNum_Recordset1=%d%s", $currentPage, max(0, $pageNum_Recordset1 - 1), $queryString_Recordset1); ?>">Précédent</a> <a href="<?php printf("%s?pageNum_Recordset1=%d%s", $currentPage, min($totalPages_Recordset1, $pageNum_Recordset1 + 1), $queryString_Recordset1); ?>">Suivant</a> <a href="<?php printf("%s?pageNum_Recordset1=%d%s", $currentPage, $totalPages_Recordset1, $queryString_Recordset1); ?>">Dernier</a> </p> </div><!-- fin contenu !--> <!-- menu droite !--> <?php require_once("menuDroite.php")?> <!-- pied !--> <?php require_once("pied1.php")?> </div><!-- fin globale !--> </body> </html>
merci jreaux62 ton code a fonctionne 100/100.. merci bien :ccool:
Bonjour,
je t'ai écrit :
- un code "propre" ;
- bien structuré ;
- valide w3c (sauf erreur) (quand tu seras "prêt", tu pourras changer le doctype en <!DOCTYPE html>) ;
- avec beaucoup de commentaires.
Ce qui est important, c'est que tu comprennes bien le code, pour être capable de le modifier ou le "retravailler" en connaissance de cause.
:ccool:
bonsoir jreaux62
oui c'est vrai l'essentiel c'est de comprendre bien le code, pour pouvoir dans l'avenir confronter des cas comme celui_ci, c'est pour cela que j’essaye de faire des petites comparaisons avec mon code pour remarquer les déférences qu'il y avait ,et pourquoi ils était?
mais franchement vous m'avez aider a sortir de ce tunnel apres 7 jours de combat avec le codage ... :aie: :aie: :aie:
merci.
salut jreaux62
est ce que vs souvenez de moi :roll:
c est presque 5 moi que vs m avez aider a resordre ce probleme de pagination ,mais bon maintenant je travail sur un site pour une petite souciete
je confronte de nouveau le meme probleme mais on se servant de ta solution je viens de remarquer que dans chaque affichage un enregistrement est ignore vous voiyez cette variable deil n affiche que 9 enregistrement.Code:$maxRows_Recordset1 = 10;
exmpl suposant que j ai dans ma BD 23 enregistrement alors au lieu d afficher 10 enrgments,10 enrgment ,puis 3. il n affiche que 9 , 9, 2 :(
c est le cas avec ce projet sur lequel je travil et l ancien que vs m avez aider
est ce que vous pouvez m aider de nouveau a trouver la solution pour ce probleme
merci
salut
desole c est juste un petit erreur au boucle while , il faut precede par do :oops:
merci et desole pour le derengement