pagination sur tableau

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : pagination sur tableau

Re: pagination sur tableau

par mathieu45 » 11 avr. 2013, 16:43

cela fait une semaine que je me suis mis a php .

je comprend une partie du code mais pas tout j'avais bien compris que j'utilisait PDO mais que dans le code y'avais mysql mais comme je debute je ne comprend pas comment passer outre mysql.

le code que j'ai fournis unclus deja la pagination mais j'aimerais que la liste des page soit comme dans l'exemple de la photo .
je n'arrive pas a adapte le code pour eviter que cela me liste tout les page : 1 ,2 ,3 ,4 ,5 j'aimerais plus <1,2,......,3,4 >.

Re: pagination sur tableau

par moogli » 11 avr. 2013, 12:37

salut,

vu qu'a priori ton code est un mélange d'un tas d’autre (connexion PDO mais utilisation de l'extension mysql etc etc), je te donne un lien vers un tuto http://phpdebutant.org/article84.php

si tu peux éditer ton code pour utiliser les balise bbcode PHP au lien de code html se serait top ;)

le code que tu fournis inclus déjà la gestion de la pagination, quel est ton problème exactement ?
ça ne fonctionne pas comme tu le souhaite ?
tu ne comprend pas le code ?


@+

pagination sur tableau

par mathieu45 » 11 avr. 2013, 11:48

Bonjour,


voila j'ai crée un tableau qui est remplie grace a une requete sql .
j'ai filtrer les resultat pour n'afficher que 5 resultat par page et j'aimerais maintenant faire la pagination.

voici le code :
<?php
session_start();
require("auth.php");
if(Auth::isLogged()){

}
else{
    header('location:login.php');
}
print_r($_SESSION);
?>
<?php
{
    $bdd= new PDO('mysql:host=localhost;dbname=tuto','root','root');
}
//Une connexion SQL doit être ouverte avant cette ligne...
$retour_total=mysql_query('SELECT COUNT(*) AS total FROM intervention'); //Nous récupérons le contenu de la requête dans $retour_total
$donnees_total=mysql_fetch_assoc($retour_total); //On range retour sous la forme d'un tableau.
$total=$donnees_total['total']; //On récupère le total pour le placer dans la variable $total.



$messagesParPage=5; //Nous allons afficher 5 messages par page.

//Une connexion SQL doit être ouverte avant cette ligne...
$retour_total=mysql_query('SELECT COUNT(*) AS total FROM intervention'); //Nous récupérons le contenu de la requête dans $retour_total
$donnees_total=mysql_fetch_assoc($retour_total); //On range retour sous la forme d'un tableau.
$total=$donnees_total['total']; //On récupère le total pour le placer dans la variable $total.

//Nous allons maintenant compter le nombre de pages.
$nombreDePages=ceil($total/$messagesParPage);

if(isset($_GET['page'])) // Si la variable $_GET['page'] existe...
{
     $pageActuelle=intval($_GET['page']);
     
     if($pageActuelle>$nombreDePages) // Si la valeur de $pageActuelle (le numéro de la page) est plus grande que $nombreDePages...
     {
          $pageActuelle=$nombreDePages;
     }
}
else // Sinon
{
     $pageActuelle=1; // La page actuelle est la n°1    
}

$premiereEntree=($pageActuelle-1)*$messagesParPage; // On calcul la première entrée à lire

// La requête sql pour récupérer les messages de la page actuelle.
$retour_messages=mysql_query('SELECT * FROM intervention ORDER BY id DESC LIMIT '.$premiereEntree.', '.$messagesParPage.'');

while($donnees_messages=mysql_fetch_assoc($retour_messages)) // On lit les entrées une à une grâce à une boucle

?>
<?php
$retour_messages=mysql_query('SELECT * FROM intervention ORDER BY id DESC LIMIT '.$premiereEntree.', '.$messagesParPage.'');

while($donnees_messages=mysql_fetch_assoc($retour_messages))
{ 
?>
                            <tr>
                                <td ><input type="checkbox" /></td>
                                <td><?php echo $donnees_messages['id']; ?></td>
                                <td><a href="#"><?php echo $donnees_messages['date'];?></a></td>
                                <td><a href="#"><?php echo $donnees_messages['nom']; ?></a></td>
                                <td><a href="#"><?php echo $donnees_messages['prenom']; ?></td>
                                <td><a href="#"><?php echo $donnees_messages['tel']; ?></td>
                                <td><a href="#"><?php echo $donnees_messages['marque']; ?></td>
                                <td><a href="#"><?php echo $donnees_messages['models']; ?></td>
                                <td class="actions"> <a href="del.php?id= <?php echo $donnees_messages['id']?>" <title="Delete this content"><img src="img/icons/actions/delete.png" alt="" /></a></td>
                                <?php
}
echo '<p align="center">Page : '; //Pour l'affichage, on centre la liste des pages
for($i=1; $i<=$nombreDePages; $i++) //On fait notre boucle
{
     //On va faire notre condition
     if($i==$pageActuelle) //Si il s'agit de la page actuelle...
     {
         echo ' [ '.$i.' ] '; 
     }  
     else //Sinon...
     {
          echo ' <a href="intervention.php?page='.$i.'">'.$i.'</a> ';
     }
}
echo '</p>';
?>

                           </tr>
                            
                        </tbody>
                    </table>
                    <div class="left input">
                        <select name="action" id="tableaction">
                            <option value="">Action</option>
                            <option value="delete">Supprimer</option>
                            <option value="delete">resuturer</option>
                        </select>
                    </div>
                    <div class="pagination"> // voici la pagination que j'aimerais avoir . 
                        <a href="#" class="prev">«</a>
                        <a href="#">1</a>
                        <a href="#" class="current">2</a>
                        ...
                        <a href="#">21</a>
                        <a href="#">22</a>
                        <a href="#" class="next">»</a>
                    </div>
                </div>
            </div>

               
        </div>
        
    </body>
</html>

je vous joint une photo qui vous expliqueras se que j'essaie de faire .

Image

merci de votre aide.