Problème pagination php [Réglé]
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
Reprise du message précédent
Le OFFSET est bien présent pourtant:[code=php][/code]
Mais erreur tout de même :
Code PHP :
Fatale : invalid query. (ERRNO 1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OFFSET0' at line 1query: SELECT * FROM phpboost_projets_forum_topic WHERE projet_id='3' ORDER BY id DESC LIMIT 3 OFFSET0
Édité par Myster Le 05/06/2016 à 19h10
PaperToss Membre non connecté
Booster Bazooka
- Booster Bazooka
- Voir le profil du membre PaperToss
- Inscrit le : 25/03/2016
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
Sauf que petit problème, lorsque la pagination à trois pages, certains sujets de la page un se retrouve en page 2 est-ce normal ?
PaperToss Membre non connecté
Booster Bazooka
- Booster Bazooka
- Voir le profil du membre PaperToss
- Inscrit le : 25/03/2016
Donne le code complet si tu veux, ça évitera de faire des plans sur la comète
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
Code PHP :
<?php /*This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ###################################################*/ define('PATH_TO_ROOT', '..'); //Début du chargement de l'environnement include_once('../kernel/init.php'); //Chargement d'un fichier css, ici le fichier css du module news define('ALTERNATIVE_CSS', 'design'); //Titre de la page, ici Accueil define('TITLE', 'Liste des sujets'); //Chargement de l'environnement ( header ) require_once('../kernel/header.php'); //Chargement des fichiers de langue et autres global $LANG, $CONFIG; if (!AppContext::get_current_user()->check_level(User::MEMBER_LEVEL)) { echo '<div class="question">Vous n\'avez pas le niveau requis ! </div>'; } else { $Template->set_filenames(array( 'topic' => 'projets/forum.tpl' )); $idprojet = stripslashes(intval($_GET['id'])); $req_projet = PersistenceContext::get_querier()->select("SELECT id,user_id FROM " . PREFIX . "projets WHERE id=" . $idprojet . " "); $req_projets = $req_projet->fetch(); $req = PersistenceContext::get_querier()->select("SELECT * FROM " . PREFIX . "projets_membres WHERE projet_id=" . $idprojet . " AND pseudo='" . $User->get_pseudo() . "' "); $final = $req->fetch(); // Si l'id du créateur de projet est égal à l'ID de l'utilisateur qui est sur la page, ou si le pseudo du membre du projet est égal au pseudo de l'user sur la page alors on affiche if ($req_projets['user_id'] == $User->get_id() OR $final['pseudo'] == $User->get_pseudo()) { // On compte le nombre d'éléments dans votre base de données $number_items = PersistenceContext::get_querier()->count('phpboost_projets_forum_topic'); // On récupère le numéro de page courante et on lui donne la valeur de 1 si elle n'est pas définie $current_page = AppContext::get_request()->get_getint('page', 1); // On initialise la classe pagination avec les différents paramètres $pagination = new ModulePagination($current_page, $number_items, 10); $pagination->set_url(new Url('/projets/forum.php?id=' . $idprojet . '&page=%d')); $pagination->get_number_items_per_page(); if ($pagination->current_page_is_empty() && $page > 1) { $error_controller = PHPBoostErrors::unexisting_page(); DispatchManager::redirect($error_controller); } $pagination->get_number_pages(); $Template->put_all(array( 'C_FILES' => true, 'C_PAGINATION' => $pagination->has_several_pages(), 'PAGINATION' => $pagination->display(),)); $requete = PersistenceContext::get_querier()->select_rows('phpboost_projets_forum_topic', array('*'), 'WHERE projet_id=:id ORDER BY id DESC LIMIT ' . $number_items . ' OFFSET ' . $pagination->get_display_from(), array( 'id' => $idprojet )); while ( $row = $Sql->fetch_assoc($requete) ) { $Template->assign_block_vars('forum', array( 'PSEUDO' => $row['pseudo'], 'TITRE' => $row['titre'], 'REPONSE' => $row['reponse'], 'USERID' => $row['user_id'], 'PROJETID' => $row['projet_id'], 'ID' => $row['id'], )); } $Template->pparse('topic'); } else { echo '<span class="error">Vous n\'êtes pas membre du projet.</span>'; } } include_once('../kernel/footer.php'); ?>
Voilà
PaperToss Membre non connecté
Booster Bazooka
- Booster Bazooka
- Voir le profil du membre PaperToss
- Inscrit le : 25/03/2016
Number_items est le nombre total d'éléments, et tu dois placer après LIMIT le nombre d'éléments à récupérer, pas le total
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie