Partage
  • Partager sur Facebook
  • Partager sur Twitter

probleme pagination et affichage image aleatoire

    10 octobre 2021 à 7:12:32

    Bonjour,

    je travaille sur un script visant a afficher des images avec nom du produit photo description prix mais j'ai deux probleme :



    1 ) les images changent a chaque maj de la page je voudrais stabiliser ca (php)

    2 ) question bonus : le systeme de pagination n'affiche pas 3 articles par page comme voulu dans le script

    (question bonus) la page se repete 47 fois avec le meme contenu

    vous verrez dans le code que j'ai essaye plusieurs pistes mais qui ne marchent pas

    ps :je debute en php merci de m'aider

    voila le code :

    <!DOCTYPE html>
    <html>
     <head>
      <meta charset="utf-8" />
      <link rel="stylesheet" href="/css/style.css" />
      <link rel="stylesheet" href="/css/design.css" />
      <script src="/js/jquery.min.js"></script>
      <!--[if lt IE 9]>
      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
      <![endif]-->
      <title>Articles</title>
     </head>
     <body>
      <h1>articles :</h1>
      
      <?php
      // Connect to database
      include("db_connect_mysqli.php");
      
      //pagination
    $retour_total = $conn->query("SELECT COUNT(*) AS total FROM produits ");
    //var_dump($retour_total);
    $donnees_total=mysqli_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=10; //Nous allons afficher 30 messages par page.
     
    //Nous allons maintenant compter le nombre de pages.
    $nombreDePages=ceil($total/$messagesParPage);
    
    //Nous allons maintenant compter le nombre de pages.
    $nombreDePages=ceil($total/$messagesParPage);
    $sql = "SELECT * FROM produits LIMIT 10";
    //$messagesParPage=30; //Nous allons afficher 30 messages par page.
     
    //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    
    } 
     // $messagesParPage=10; //Nous allons afficher 30 messages par page.
     
    $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
    //Affichage la liste des pagesSélectionnez
    //$messagesParPage=10; //Nous allons afficher 30 messages par page.
     
    //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 calcule la première entrée à lire
    
      // recherche du texte
      $sql = "SELECT * FROM produits";
      $result = mysqli_query($conn, $sql);
      //recherche de l'image      
      require_once("db_connect_mysqli.php");
      $sql_2 = "SELECT name FROM file";
      $req = mysqli_query($conn, $sql_2);
      ?>
      <div class="style" "Page de travail"></div>
          <!--  <span style="max-width:350px;"> -->
            <!-- <div class="bloc"> -->
       <table> 
        <?php 
          // mise en place image
           $path = 'upload/'; // chemin vers le dossier contenant tes images (ne pas oublier le slash final)
          
           $tab = scandir($path); // Place tes images dans un tableau
           $tab = array_slice($tab, 2); // J'avais oublie que scandir listait . et .. donc on les vires aussi 
           /*
           shuffle($tab); // Mélange le tableau	 
           */
           $tab = array_slice($tab, 1, 1); // Garde les 3 premières images
        
           
           //foreach (glob("*.jpg") as $img)    // renvoie une page sans images
           //  foreach ($img as $img)
            foreach ($tab as $img)
            {
         // condition texte   // on fait une boucle du tableau pour l'affichag
         if (mysqli_num_rows($result) > 0) {
         while ($row = mysqli_fetch_array($result)) {
        ?>
          <!--  <tbody> -->
          
         <!--  <pre> -->    
           <!--  <div class="boxgrid caption" color="#fff" > -->
         
           <td><tr>
           <?php 
       
       	    echo '<div class="float_foto"><img src="'.$path.$img.'" alt=""  width="300px" ><br/>  ';
            echo '</div>'; // fin disclass float foto 
    
           ?>
           </td></tr>
           <td><tr>
           <p><?php  echo $row['name']; ?></p> 
           </td></tr>
           <td><tr>
           <p><?php  echo $row['price']; echo '€'; ?></p>
           </td></tr>
        
           
          <!--   </div> <!-- fin div class boxgrid --> 
          <!--   </pre> -->
           <!--  </tr> -->
           <!-- </tbody> -->
         <?php       
           } // fin foreach
          }  // fin while #2
         } // fin if
         ?>
       </table>
          <!--  </div> <!-- fin div class bloc -->
          <!-- </span> -->
      <?php
      //pagination suite
      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) //S'il s'agit de la page actuelle...
         {
             echo ' [ '.$i.' ] '; 
         }    
         else //Sinon...
         {
              echo ' <a href="article.php?page='.$i.'">'.$i.'</a> ';
         }
    }
    echo '</p>';
    ?>
     </body>
    </html>



    -
    Edité par YvesmanCacestprive 10 octobre 2021 à 19:28:10

    • Partager sur Facebook
    • Partager sur Twitter
      10 octobre 2021 à 8:38:59

      Bonjour,

      ici on essaie au maximum de faire "1 problème = 1 sujet". Donc, déjà, rien qu'avec le titre et l'intention, ça dépasse de beaucoup. De plus, tu as du PHP et du HTML/CSS dans tes problèmes. C'est difficile de travailler sur les deux en même temps.

      Je vais déplacer le sujet vers le forum PHP, et t'invite à changer ton titre pour mieux préciser le problème principal côté PHP. Ensuite, quand ça sera résolu (genre la pagination, la répétition), tu créeras un nouveau sujet côté HTML/CSS, en postant le HTML généré, et on pourra mieux voir les soucis. OK ?

      • Partager sur Facebook
      • Partager sur Twitter

      Pas d'aide concernant le code par MP, le forum est là pour ça :)

        10 octobre 2021 à 21:59:07

        c'est fait

        -
        Edité par YvesmanCacestprive 10 octobre 2021 à 21:59:38

        • Partager sur Facebook
        • Partager sur Twitter

        probleme pagination et affichage image aleatoire

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown