Bon voila je me suis déjà adresser a vous il y a quelque jours pour un problème de moteur de recherche et vous m'avez vraiment aidé mais je me retrouve de nouveau confronté à une difficulté que je n'arrive pas a surmonter. Voila après avoir fais le moteur de recherche on ma demander d'y intégrer une liste déroulante qui permettrait de choisir le nombre de résultat par page . ça j'ai fait mais le seul problème et la pagination j'ai bien le nombre de résultat mais j'ai qu'une page j'ai essayer différente méthode mon script arrive a calculer le nombre de page nécessaire pour afficher tout les résultat mais quand je clique sur le numéro de page j'ai des erreurs pourriez vous m'aidez svp? =D
Voici le html
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 <html> <link rel="stylesheet" Type="text/css" Href="stylesheet.css"> <Title>XXX</title> <Body> <h2>XXXXXX</h2> <form method="POST" action="recherche.php" align="center"> <h5>Veuillez entrer le nom du produit ou sa référence</h5> <input type="text" name="critere"><br /> <h5>Nombre de résultat par page</h5> <select name="choix" > <option value="5" selected="selected">5</option> <option value="10">10</option> <option value="20">20</option> </select><br><br> <input type="submit" value="Recherche"/> </form>
et voici le php
je ne sais vraiment pas quoi faire pour que les résultats suivant s'affichent sur les pages =(
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 <?php $host = "localhost"; $user = "xxxxx"; $password = "xxxx"; $bdd = "XXXXX"; $connexion = @ mysql_connect($host, $user,$password) or exit("Impossible de se connecter !") ; mysql_select_db($bdd) or die("erreur de connexion a la base de donnees"); // Numero de page (1 par défaut) if( isset($_GET['page']) && is_numeric($_GET['page']) ) $page = $_GET['page']; else $page = 1; // Nombre d'info par page $pagination = $_POST['choix']; // Numéro du 1er enregistrement à lire $limit_start = 0; $crit=$_POST['critere']; // Préparation de la requête $sql = "SELECT * FROM produit WHERE LIBELLE_PRODUIT LIKE '%".$crit."%' or DESCRIPTION LIKE '%".$crit."%' or REFERENCE_PRODUIT LIKE '%".$crit."%' ORDER BY REFERENCE_PRODUIT ASC LIMIT $limit_start, $pagination"; // Requête SQL $resultat = mysql_query($sql); // Traitement et affichage des données if (mysql_num_rows($resultat) > 0){ echo '<table align="center" border="2" bordercolor="red">'; echo '<tr><th>Image</th><th>Référence</th><th>Libellé</th><th>Prix TTC</th><th>Prix HT</th><th>Description</th></tr>'; while ( $r = mysql_fetch_assoc($resultat) ) { echo '<tr>'; echo '<td height="22" align="center"><a href="'.$r['GRANDE_IMAGE_SITE_ORIGINE'].'"><img src="'.$r['PETITE_IMAGE_SITE_ORIGINE'].'" high=70 width=70/></a></td>'; echo '<td height="22" align="center">'.$r['REFERENCE_PRODUIT'].'</td>'; echo '<td height="22" align="center">'.$r['LIBELLE_PRODUIT'].'</td>'; echo '<td height="22" align="center">'.$r['PRIX_TTC'].'</td>'; echo '<td height="22" align="center">'.$r['PRIX_HT'].'</td>'; echo '<td height="22" align="center">'.$r['DESCRIPTION'].'</td>'; echo '</tr>'; } echo '</table>'; } else { echo "<p>Aucun enregitrement ne correspond</p>"; } /* ICI VOTRE CODE NORMAL */ /* Affichage d'un élément */ // Nb d'enregistrement total $nb_total = mysql_query("SELECT * FROM produit WHERE LIBELLE_PRODUIT LIKE '%".$crit."%' or DESCRIPTION LIKE '%".$crit."%' or REFERENCE_PRODUIT LIKE '%".$crit."%'"); $nb_total = mysql_num_rows($nb_total); // Pagination $nb_pages = ceil($nb_total / $pagination); echo '<p>[ Page :'; // Boucle sur les pages for ($i = 1 ; $i <= $nb_pages ; $i++) { if ($i == $page ) echo " $i"; else echo " <a href=\"?page=$i\">$i</a> "; } echo ' ]</p>'; ?>
Partager