Précédent   Forum du club des développeurs et IT Pro > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 08/01/2013, 19h20   #1
coppin
Invité de passage
 
Inscription : décembre 2012
Messages : 14
Détails du profil
Informations forums :
Inscription : décembre 2012
Messages : 14
Points : 0
Points : 0
Par défaut afficher plusieurs pages apres une requete

voila je souhaite apres une selection afficher les 5 premiers résultats et s'il y en a plus afficher les 5 suivants.

La j'ai pris l'option d'un lien vers la meme page avec en bas de tableau "suivant"

Mon problème est que quand je relance la page mes données ayant servi a faire la selection n'existe plus.

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
<?php
 
 
$pays = $_POST['pays'];
$type = "Commerce";//$_POST['typecommerce'];
$region = $_POST['region'];
$cp1 = $_POST['cp1'];
$cp2= $_POST['cp2'];
$cp3 = $_POST['cp3'];
$cp4 = $_POST['cp4'];
$prixmin = $_POST['prixmin'];
$prixmax = $_POST['prixmax'];
$selection1 = $_POST['selection1'];					
$selection2 = $_POST['selection2'];
 
 
if ($prixmax == "")
{ 
$prixmax = "10000000000000000000000";
}
 
 
 
$nombre = 5;  				// on va afficher 5 résultats par page.
if (!isset($limite)) $limite = 0; 	// si on arrive sur la page pour la première fois 
					// on met limite à 0.
 
$path_parts = pathinfo($_SERVER['PHP_SELF']);
$page = $path_parts['basename'];
 
 
 
 
 
 
try
{
	$bdd = new PDO('mysql:host=localhost;dbname=commerces', 'root', '');
}
catch(Exception $e)
{
        die('Erreur : '.$e->getMessage());
}
 
$reponse = $bdd->query("SELECT * FROM dossiers WHERE type='$type' and pays ='$pays' and pv <'$prixmax' and pv >'$prixmin' and (cp ='$cp1' or cp ='$cp2' or cp ='$cp3' or cp ='$cp4') ORDER BY '$selection1' ASC ")
or die(print_r($bdd->errorInfo()));
 
$total = $reponse -> rowCount();
//print_R ($row);
//$total = $row[0];
echo $total;
 
 
$reponse = $bdd->query("SELECT * FROM dossiers WHERE type='$type' and pays ='$pays' and pv <'$prixmax' and pv >'$prixmin' and (cp ='$cp1' or cp ='$cp2' or cp ='$cp3' or cp ='$cp4') ORDER BY '$selection1' ASC limit $limite, $nombre")
or die(print_r($bdd->errorInfo()));
 
 
 
 
 
?>
<table>
<caption></caption>
<thead><tr><th scope="col">Photo</th>
<th scope="col">Prix</th>
<th scope="col">Type de commerce</th>
<th scope="col">Localité</th>
<th scope="col">Description Brève</th>
</tr></thead>
<tbody>
 
 
 
 <?php
 
while ($donnees = $reponse->fetch())
{
	//echo '<p><strong>' . ($donnees['rue']) . '</strong>  ' . ($donnees['numero']) . '</p>';
	//echo '<p><strong>' . ($donnees['cp']) . '</strong>  ' . ($donnees['commune']) . '</p>';
	//echo '<p><strong>' . ($donnees['pays']) . '</strong>  ' ;
//echo ($donnees['type']);	
 
 
 
 
 
 
 
$photo1 = $donnees['photo1'];
$photo1 = "uploads/mini-".$photo1;
$pv = $donnees['pv'];
$type = $donnees['type'];
$cp = $donnees['cp'];
$commune = $donnees['commune'];
$description_breve = $donnees['description_breve'];
$description_breve = nl2br($description_breve);
$date = $donnees['date_debut'];
?>
 
<tr>
<th scope="row" id="r100"><a href="detail.php"><img src="<?php echo $photo1;?>"</a></th>
<td><?php echo$pv;?></td>
<td><a href="detail.php"><?php echo $type;?></a></td>
<td><?php echo $cp;?>  <?php echo $commune;?></td>
<td><?php echo $description_breve;?></td>
</tr>
 
 
 
<?php
}
$reponse->closeCursor();
$limitesuivante = $limite + $nombre;
$limiteprecedente = $limite - $nombre;
 
?>
 
</tbody>
<?php
if($limitesuivante < $total) {
?>
<tfoot><tr><th scope="row">Total</th>
<td colspan="4"><a href="<?php echo $page?>?limite= <?php echo $limitesuivante?>"><font color=#FF0000>Page Suivante</font></a></td></tr></tfoot>
</table>
 
 
<?php
 
}
 
 
 
?>
merci de me guider
coppin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2013, 19h26   #2
Exia93
Membre Expert
 
Homme
Étudiant
Inscription : avril 2012
Messages : 599
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2012
Messages : 599
Points : 1 049
Points : 1 049
Bonsoir,

met les paramètre en session ou en get (dans l'adresse url) et ton "bouton" suivant est un lien avec tous les paramètres mais un limite plus haute.
Exia93 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2013, 19h39   #3
RunCodePhp
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 965
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 965
Points : 3 671
Points : 3 671
Salut

Ce que tu souhaite faire ressemble comme 2 gouttes d'eau à ce qu'on appel de la pagination.

Effectue quelques recherche sur ce forum et sur GG (ou/et autre) avec ce terme là (genre : pagination en Php).
Tu vas obligatoirement trouver des tutos et autres solution, car faire de la pagination c'est très fréquent.

Tu verras d'ailleurs qu'il y a quelques calculs en plus à intégrer pour mieux gérer cela.


Par ailleurs, je vois que tu tente d'exploiter des données en POST, or, je ne vois pas de formulaire qui enverrait des données en POST justement (ou j'ai mal vu).
Je ne vois que des liens (<a></a>), qui eux envoies les données en GET.
Faut peut être faire le point la dessus.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]
RunCodePhp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2013, 13h40   #4
coppin
Invité de passage
 
Inscription : décembre 2012
Messages : 14
Détails du profil
Informations forums :
Inscription : décembre 2012
Messages : 14
Points : 0
Points : 0
je vais rechercher comme tu me l'indique.

En fait la page ici reçoit des info en post d'une page de selection.
apres le premier passage il affiche bien 5 sur 9 de résultat.

mais quans je clic sur suivant il me dit variables innexistantes.

ps : j'ai pris 5 car je veux 2 pages pour mon test et que ma base est très faible actuellement en test.

Si je comprends ce qui se passe lorsque je clic sur suivant je perd mes infos du départ $_POST.

donc je cherche comment ne pas les perdres.je pense a ceci les ... pour autres variables.Est ce le plus simple ?


Code :
1
2
3
4
5
6
7
8
9
10
11
<td colspan="4"><a href="<?php echo $page?>?limite= <?php echo $limitesuivante&pays=$pays&cp1=$cp1...........?>"><font color=#FF0000>Page Suivante</font></a></td></tr></tfoot>
</table>
 
 
<?php
 
}
 
 
 
?>
coppin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2013, 13h57   #5
christele_r
Membre Expert
 
Avatar de christele_r
 
Femme Christele Rubneau
Inscription : novembre 2009
Messages : 1 051
Détails du profil
Informations personnelles :
Nom : Femme Christele Rubneau
Âge : 40
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2009
Messages : 1 051
Points : 1 426
Points : 1 426
Bonjour,
Je sais que ce n'est pas simple a comprendre, mais sur une page telle
que tu la conçoit, il faut en premier traiter les POST = existet'ils O/N
s'ils existent ils viennent du formulaire de départ, si il n'existent pas alors on est sur page suivante et donc on remplace par les valeurs de session

un exemple pour une valeur
Code :
1
2
3
4
5
6
7
 
<?php
session_start();
$lieu = (isset($_POST['lieu'])) ? $_POST['lieu'] : '';
if ($lieu!="") $_SESSION['lieu']=$lieu; 
$lieu = (isset($_SESSION['lieu'])) ? $_SESSION['lieu'] : '';
?>
christele_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 15h25.


 
 
 
 
Partenaires

Hébergement Web