Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/06/2006, 11h40   #1
Nouveau Membre du Club
 
Inscription : mai 2006
Messages : 175
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 175
Points : 30
Points : 30
Par défaut Pagination et variables de session

Bonjour,

J'ai créé un formulaire (formulaire.php) qui cherche dans ma base et qui affiche les résultats sur une page resultats.php. Sur la page résultats.php j'utilise un système de pagination pour afficher les résultats. Mon problème est le suivant:
Quand il y a plusieurs pages je perds les variables sélectionnées lors de la soumission du formulaire. Je débute en Php et je sais qu'on peut mettre les varialble en session seulement je vois pas comment faire dans mon cas precis. Peut etre il existe une meilleure solution. A vous de me conseiller. Voici le code de la page resultats.php.

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
 
 
<?
$query = "SELECT region, pays FROM mabase";
 
if(isset($_POST['region']) && $_POST['region'] != "*") {
     $fields['region'] = $_POST['region'];
}
if(isset($_POST['pays']) && $_POST['pays'] != "*") {
     $fields['pays'] = $_POST['pays'];
}
 
if(!empty($fields)) {
     $i = 0;
     $query .= " WHERE ";
     foreach($fields AS $field => $value) {
          if($i > 0) {
               $query .= " AND ";
          }
          else {
               $query .= $field." = '".$value."'";
          }
          $i++;
     }
}
 
$query .= " ORDER BY date DESC ";
echo $query;
 
$result = mysql_query($query) or die ('Erreur : '.mysql_error() );
 
$Nmax = 3; 
$Ncur = 0;
 
$Ndeb=@$_GET["num"];
 
while (($row = mysql_fetch_array($result))
   && ($Ncur<$Nmax+$Ndeb)) {
   if($Ncur>=$Ndeb)
{
    echo '<table width="450" border="0" cellspacing="0">'."\n";
        echo '<tr>';
        echo '<td class="ad"><b>'.$row['region'].' &nbsp; '.$row['pays'].' &nbsp; </b></td>';
        echo '</tr>'."\n";
    echo '</table>'."\n";
}
 
 
   $Ncur++;
} ?>
 
</td>
 
<td>
<table align="left" cellpadding="0" cellspacing="0" border="0" width="250">&nbsp;</table>
</td>
 
</tr>
 
 
<tr>
<td align="center" colspan="3">
 
<br />
<table>
<tr>
<? if($Ndeb > 0) { ?>
 
<td valign=top>
<b><font size="2" face="Arial"><a href="?num=<? echo $Ndeb-$Nmax; ?>">Pécédente</a></font></b>
</td>
<? } ?>
 
<td>   
<? $Npag = ceil(mysql_numrows($result)/$Nmax);
for($i = 1;$i<=$Npag;$i++) {
   if($Ndeb == ($i-1)*$Nmax) { ?>
      <b><font size="2" face="Arial">Page <? echo $i; ?></font></b>
   <? } else { ?>
      <b><font size="2" face="Arial"><a href="?num=<? echo ($i-1)*$Nmax; ?>"
      >&nbsp;<? echo $i; ?>&nbsp;</a></font></b>
   <? }
} ?>
</td>
 
<? if($row) { ?>
 
<td valign=top>
<b><font size="2" face="Arial"><a href="?num=<? echo $Ncur; ?>">Suivante</a></font></b>
</td>
 
<? } ?>
</tr></table>
 
</td>
</tr>
dolf13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2006, 11h50   #2
Membre régulier
 
Avatar de carelha
 
Inscription : mars 2006
Messages : 168
Détails du profil
Informations personnelles :
Localisation : France, Yvelines (Île de France)

Informations forums :
Inscription : mars 2006
Messages : 168
Points : 74
Points : 74
Bonjour,


j'ai comme toi un premier formulaire avec des variables POST.
J'ai d'abord vérifié que le formulaire était bien envoyé, dans la même page,
puis transformé mes variables post en variables de session :
Code :
$_SESSION['s_clef'] = $_POST[s_clef'] ;
puis je les utilise dans mes requêtes

donc pour toi ca ferait qqch comme ca

Code :
1
2
3
if(isset($_POST['region']) && $_POST['region'] != "*") {
     $_SESSION['region'] = $_POST['region'];
}
Mais après pour ton code je ne sais pas quelle est la syntaxe exacte si field devient session.

J'espère que ca pourra être un début de piste
carelha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2006, 11h57   #3
Nouveau Membre du Club
 
Inscription : mai 2006
Messages : 175
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 175
Points : 30
Points : 30
merci je vais faire l'essai
dolf13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h16.


 
 
 
 
Partenaires

Hébergement Web