IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Comment créer la pagination de la catégorie et des produits ?


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club

    Homme Profil pro
    desarrollo web
    Inscrit en
    Mars 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Equateur

    Informations professionnelles :
    Activité : desarrollo web

    Informations forums :
    Inscription : Mars 2016
    Messages : 2
    Billets dans le blog
    1
    Par défaut Comment créer la pagination de la catégorie et des produits ?
    Je crée un catalogue de produits avec des catégories. Jusqu'à présent, je l'ai développé une pagination de produit parfaitement, même la catégorie du catalogue de produits.

    Cette page répertorie tous les produits dans la base de données de table.

    Avec la fonction suivante:

    products.php

    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
    function getPro(){
        if(!isset($_GET['cat'])){
            if(!isset($_GET['brand'])){
                global $con;
       $url = "products.php";
        $sql = mysqli_query($con,"SELECT * FROM products");
        $num_total_records = mysqli_num_rows($sql);
        if ($num_total_records > 0) {
            $SIZE_PAGE = 1;
            $page = false;
        if (isset($_GET["pag"]))
        $page = preg_replace('#[^0-9]#','', $_GET["pag"]);
        if (!$page) {
            $index = 0;
            $page = 1;
        }
        else {
            $index = ($page - 1) * $SIZE_PAGE;
        }
        $total_pages = ceil($num_total_records / $SIZE_PAGE);
        echo'Products';
        echo '<h3 class="h3">'.$num_total_records .' PRODUCTS PÁGE '.$page.' OF ' .$total_pages.'</h3>';
        //echo '<h3>Page '.$page.' of ' .$total_pages.' </h3>';
        $sql = mysqli_query($con,"SELECT * FROM products ORDER BY product_id ASC LIMIT $index,$SIZE_PAGE");
     
        while ($row = mysqli_fetch_array($sql)) {   
            $pro_id = $row['product_id'];
            $pro_cat = $row['product_cat'];
            $pro_brand = $row['product_brand'];
            $pro_title = $row['product_title'];
            $pro_price = $row['product_price'];
            $pro_image = $row['product_image'];
     
            echo "
                    <div id='single_product'>
     
                        <h3>$pro_title</h3>
     
                        <img src='admin_area/product_images/$pro_image' width='180' height='180' />
     
                        <p><b> $ $pro_price </b></p>
     
                        <a href='details.php?pro_id=$pro_id' style='float:left;'>Details</a>
     
                        <a href='index.php?pro_id=$pro_id'><button style='float:right'>Add to Cart</button></a>
     
                    </div>
     
     
            ";
     
        }
        ?>
    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
    <?php
        if ($total_pages > 1) {
            if ($page != 1)
            echo '<li><a href="'.$url.'?pag='.($page-1).'">previous</a></li>';
            for ($i=1;$i<=$total_pages;$i++) {
            if ($page == $i)
            echo'<li class="active"><a>'.$page.'</a><li>';
            else
            echo '  <li><a href="'.$url.'?pag='.$i.'">'.$i.'</a><li>  ';
            }
                if ($page != $total_pages)
            echo '<li><a href="'.$url.'?pag='.($page+1).'">next</a></li>';
        }
        echo '</p>';
        }
    }
    }
    }
    Cette fonction correspond à la catégorie du produit.


    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
    function getCats(){
     
        global $con; 
     
        $get_cats = "select * from categories";
     
        $run_cats = mysqli_query($con, $get_cats);
     
        while ($row_cats=mysqli_fetch_array($run_cats)){
     
            $cat_id = $row_cats['cat_id']; 
            $cat_title = $row_cats['cat_title'];
     
        echo "<li><a href='products.php?cat=$cat_id'>$cat_title</a></li>";
     
     
        }
     
     
    }
    Le problème avec cette fonctionnalité est qu'il montre tous les produits.

    s'il y a 100 produits dans la même catégorie Il ne serait pas montrer tous les résultats. parce que si nous montrons tous les résultats de la catégorie, la page sérieuse vaste.

    alors mon idée est aussi de mettre en œuvre une pagination pour la catégorie du produit

    mais je ne sais pas comment le créer?

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    tu n'as plus qu'à modifier en conséquence ton sql :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM products WHERE product_cat = :categ ORDER BY product_id LIMIT ...
    et ensuite tu repagines sur ce jeu de données

  3. #3
    Candidat au Club

    Homme Profil pro
    desarrollo web
    Inscrit en
    Mars 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Equateur

    Informations professionnelles :
    Activité : desarrollo web

    Informations forums :
    Inscription : Mars 2016
    Messages : 2
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par rawsrc Voir le message
    Salut,

    tu n'as plus qu'à modifier en conséquence ton sql :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM products WHERE product_cat = :categ ORDER BY product_id LIMIT ...
    et ensuite tu repagines sur ce jeu de données
    Salut rawsrc,

    Aide moi s'il te plait.

    produits de radiomessagerie catégorie et sous-catégorie...

    à l'image affichée

    Nom : categoria-img.png
Affichages : 246
Taille : 2,0 Ko

    sous-catégorie
    Nom : subcategoria-img.png
Affichages : 246
Taille : 2,9 Ko

    dans la catégorie des produits lorsque vous cliquez sur l'un des sous-catégorie pour afficher uniquement les résultats de la pagination de l'exemple de la catégorie liée:

    Nom : paginacion-subcategoria-img.png
Affichages : 248
Taille : 34,1 Ko

    dans la catégorie principale montrer tous les résultats liés à la catégorie
    exemple:

    Nom : paginacion-categoria-img.png
Affichages : 250
Taille : 60,0 Ko

    le résultat déjà écrit en dernier le résultat suivant.

    Nom : paginacion-total-sub-categoria.png
Affichages : 255
Taille : 64,5 Ko

    Je l'ai déjà développé la catégorie et sous-catégorie de produit, le problème est que les produits paginés catégorie individuellement avec une seule page.

    mon code de pagination.

    Code php : 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
    <?php
    function getPro(){
        if(!isset($_GET['cat'])){
            if(!isset($_GET['brand'])){
                global $con;
       $url = "products.php";
        $sql = mysqli_query($con,"SELECT * FROM products");
        $num_total_records = mysqli_num_rows($sql);
        if ($num_total_records > 0) {
            $SIZE_PAGE = 1;
            $page = false;
        if (isset($_GET["pag"]))
        $page = preg_replace('#[^0-9]#','', $_GET["pag"]);
        if (!$page) {
            $index = 0;
            $page = 1;
        }
        else {
            $index = ($page - 1) * $SIZE_PAGE;
        }
        $total_pages = ceil($num_total_records / $SIZE_PAGE);
        echo'Products';
        echo '<h3 class="h3">'.$num_total_records .' PRODUCTS PÁGE '.$page.' OF ' .$total_pages.'</h3>';
        //echo '<h3>Page '.$page.' of ' .$total_pages.' </h3>';
        $sql = mysqli_query($con,"SELECT * FROM products ORDER BY product_id ASC LIMIT $index,$SIZE_PAGE");
     
        while ($row = mysqli_fetch_array($sql)) {   
            $pro_id = $row['product_id'];
            $pro_cat = $row['product_cat'];
            $pro_brand = $row['product_brand'];
            $pro_title = $row['product_title'];
            $pro_price = $row['product_price'];
            $pro_image = $row['product_image'];
     
            echo "
                    <div id='single_product'>
    
                        <h3>$pro_title</h3>
    
                        <img src='admin_area/product_images/$pro_image' width='180' height='180' />
    
                        <p><b> $ $pro_price </b></p>
    
                        <a href='details.php?pro_id=$pro_id' style='float:left;'>Details</a>
    
                        <a href='index.php?pro_id=$pro_id'><button style='float:right'>Add to Cart</button></a>
    
                    </div>
    
    
            ";
     
        }
     
        if ($total_pages > 1) {
            if ($page != 1)
            echo '<li><a href="'.$url.'?pag='.($page-1).'">previous</a></li>';
            for ($i=1;$i<=$total_pages;$i++) {
            if ($page == $i)
            echo'<li class="active"><a>'.$page.'</a><li>';
            else
            echo '  <li><a href="'.$url.'?pag='.$i.'">'.$i.'</a><li>  ';
            }
                if ($page != $total_pages)
            echo '<li><a href="'.$url.'?pag='.($page+1).'">next</a></li>';
        }
        echo '</p>';
        }
    }
    }
    }
    ?>


    Ce code affiche la sous-catégorie

    Code php : 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
     
    <?php
    function getCats(){
     
        global $con; 
     
        $get_cats = "select * from souscatégorie";
     
        $run_cats = mysqli_query($con, $get_cats);
     
        while ($row_cats=mysqli_fetch_array($run_cats)){
     
            $cat_id = $row_cats['cat_id']; 
            $cat_title = $row_cats['cat_title'];
     
        echo "<li><a href='products.php?cat=$cat_id'>$cat_title</a></li>";
     
     
        }
     
     
    }?>

    Ce code montre la catégorie principale

    Code php : 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
     
    <?php
    function getBrands(){
     
    	global $con; 
     
    	$get_brands = "select * from categories";
     
    	$run_brands = mysqli_query($con, $get_brands);
     
    	while ($row_brands=mysqli_fetch_array($run_brands)){
     
    		$brand_id = $row_brands['brand_id']; 
    		$brand_title = $row_brands['brand_title'];
     
    	echo "<li><a href='index.php?brand=$brand_id'>$brand_title</a></li>";
     
     
    	}
    }
    ?>

    aidez-moi s'il vous plaît créer une page et d'afficher des images grâce.

Discussions similaires

  1. Réponses: 30
    Dernier message: 30/05/2009, 18h49
  2. Réponses: 2
    Dernier message: 08/09/2008, 09h28
  3. Réponses: 2
    Dernier message: 16/05/2007, 16h13
  4. Réponses: 1
    Dernier message: 18/02/2007, 11h07
  5. Réponses: 24
    Dernier message: 18/06/2006, 19h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo