Bonjour,
J'essaie de faire une pagination sur le résultat d'une recherche (qui fonctionne bien sur la totalité) qui me renvoie une erreur PDO à la ligne 40 si vous pouvez me dire ce qui ne va pas, je vous remercie de votre aide.
Mon code n'est pas très long.
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 <?php include 'main-functions.php'; /////////////////////////////// DEBUT RECHERCHE ////////////////////////////// function recherche_par_mots_cles($search){ global $connexion; // $where = ""; $search = preg_split('/[\s\-]/' ,$search); $count_keywords = count($search); foreach ($search as $key => $searches){ $where .= "article LIKE '%$searches%' OR description LIKE '%$searches%'"; if ($key != ($count_keywords-1)){ $where .= " AND "; } } $query = mysqli_query($connexion, "SELECT * FROM articles WHERE $where")or exit(mysqli_error($connexion)); $rows = mysqli_num_rows($query); if ($rows){ while ($article = mysqli_fetch_assoc($query)) { echo "<div class=\"row\"> <div class=\"col l12 m12 s12\"> <a href=index.php?page=articles&id=".$article['id'].">".$article['article']."</a> <br> <u>Description:</u><br> ".$article['description']." <br> Prix: ".$article['prix']." </div> </div>"; } /////////////////////////////// DEBUT PAGINATION ////////////////////////////// global $bdd; //Nombre de pages à afficher $parPage = (int) 3; //Requête simple pour compter les entrées $req = $bdd->query("SELECT COUNT(*) as nb_billets FROM articles WHERE article LIKE '$where' OR description LIKE '$where'"); $resultat = $req->fetch(); //nb de billets dans la table $totalBillets = $resultat['nb_billets']; //Nb pages à afficher à l'arrondi $nbPage = ceil($totalBillets/$parPage); //Condition pour voir sur quelle page on se trouve et si c'est bien un chiffre (==1 vérifie bien que c'est un chiffre) if(isset($_GET['numeroPage']) && !empty($_GET['numeroPage']) && ctype_digit($_GET['numeroPage'])==1) { //Si le numéro de page n'est pas supérieur au nombre de pages existantes if ($_GET['numeroPage']>$nbPage) { $pageCourrante = $nbPage; } else { $pageCourrante = $_GET['numeroPage']; } } else { //Sinon la page courrante = 1 $pageCourrante = (int)1; } $premierBilletDeLaPage = ($pageCourrante-1)*$parPage; /////////////////////////////// FIN PAGINATION ////////////////////////////// ///////////////// DEBUT AFFICHAGE DES NUMEROS DE PAGES ///////////////////// include('pagination.inc.php'); ///////////////// FIN AFFICHAGE DES NUMEROS DE PAGES ///////////////////// }else{ echo "<p>Pas de résultat !</p>"; } } /////////////////////////////// FIN RECHERCHE ////////////////////////////// ?>
Partager