Partage
  • Partager sur Facebook
  • Partager sur Twitter

Last id

Sujet résolu
    16 août 2018 à 22:32:19

    Salut à tous,
    J'espère que vos vacances se passent bien :)

    Je rame depuis des heures pour afficher le dernier article crée de mon blog, alors merci d'avance de votre aide.

    En gros, sur la page d'accueil de mon blog, je souhaite :
    1/ afficher le dernier article que j'ai créé
    2/ puis la liste de tous mes articles (sauf le dernier créé évidemment :))

    (Le dernier article créé (1/) ayant un css spécifique (plus grande image, etc...))

    Or, invariablement avec mon mon codage, ça m'affiche tous les articles :

    <?php
    try {
    include "administration/infos/bdd.php";
    $req = $bdd->query("SELECT * FROM billets where id<>'".$LAST_INSERT_ID."'");
    while ($donnees = $req->fetch())
    {
    ?><p><?php echo $donnees['titre']; ?><p></p><?php } $req->closeCursor();}catch(Exception $e){die('Erreur : '.$e->getMessage()); }?>


    Merci.
    Zedbar

    • Partager sur Facebook
    • Partager sur Twitter
      16 août 2018 à 22:38:49

      Bonsoir,

      Regarde du côté de la clause "ORDER BY .... DESC" en sql.

      • Partager sur Facebook
      • Partager sur Twitter
        16 août 2018 à 22:40:02

        Bonsoir,

        Soit tu t'embête pas et tu prends tout les billets (par exemple les 10 derniers) et tu sort le premier du tableau et les autres y restent.

        Soit si tu veux plus simple mais qui utilise 2 requête tu fais :

        # Le dernier
        SELECT * FROM billets ORDER BY created_at DESC LIMIT 0, 1
        
        # Les 9 derniers d'avant
        SELECT * FROM billets ORDER BY created_at DESC LIMIT 1, 9



        -
        Edité par quenti77 16 août 2018 à 22:40:16

        • Partager sur Facebook
        • Partager sur Twitter
          16 août 2018 à 23:49:05

          Merci, j'ai résolu une partie de mon problème, j'arrive bien à afficher le dernier article créé.

          Par contre, pour afficher le reste des articles, j'utilise un système de pagination (avec un $limit dans la requète) et là du coup je peux plus utiliser ta soluce. Si t'as une idée ?

          Le codage complet (pour les articles autres que le dernier créé)

          <?php
          $type_encoded = $_GET['type_encoded'];
          require "administration/infos/new.php";
          if (mysqli_connect_errno()) {
              echo mysqli_connect_error();
              exit();
          } 
          $sql = "SELECT COUNT(id) FROM billets WHERE type_encoded='".$type_encoded."' and type_encoded<>'Brouillon' ";
          $query = mysqli_query($db_conx, $sql);
          $row = mysqli_fetch_row($query);
          $rows = $row[0];
          $page_rows = 6;
          $last = ceil($rows/$page_rows);
          if($last < 1){
          	$last = 1;
          }
          $pagenum = 1;
          if(isset($_GET['pn'])){
          	$pagenum = preg_replace('#[^0-9]#', '', $_GET['pn']);
          }
          if ($pagenum < 1) { 
              $pagenum = 1; 
          } else if ($pagenum > $last) { 
              $pagenum = $last; 
          }
          $limit = 'LIMIT ' .($pagenum - 1) * $page_rows .',' .$page_rows;
          $sql = "SELECT *, DATE_FORMAT(date_creation, \"%d/%m/%Y\") AS date_creation FROM billets WHERE type_encoded='".$type_encoded."' ORDER BY id DESC LIMIT 1, 6 $limit";
          $query = mysqli_query($db_conx, $sql);
          $textline1 = "Testimonials (<b>$rows</b>)";
          $textline2 = "Page <b>$pagenum</b> of <b>$last</b>";
          $paginationCtrls = '';
          if($last != 1){
          if ($pagenum > 1) {
                  $previous = $pagenum - 1;
          		$paginationCtrls .= '<a class="previous2" href="/'.$type_encoded.'?pn='.$previous.'">Précédents</a> &nbsp; &nbsp; ';
          		for($i = $pagenum-4; $i < $pagenum; $i++){
          			if($i > 0){
          		        $paginationCtrls .= '<a class="pag2" href="/'.$type_encoded.'?pn='.$i.'">'.$i.'</a> &nbsp; ';
          			}
          	    }
              }
          	$paginationCtrls .= '<b class="first_pagination">'.$pagenum.'</b>';
          	for($i = $pagenum+1; $i <= $last; $i++){
          		$paginationCtrls .= '<a class="pag2" href="/'.$type_encoded.'?pn='.$i.'">'.$i.'</a> &nbsp; ';
          		if($i >= $pagenum+4){
          			break;
          		}
          	}
              if ($pagenum != $last) {
                  $next = $pagenum + 1;
                  $paginationCtrls .= ' &nbsp; &nbsp; <a class="previous2" href="/'.$type_encoded.'?pn='.$next.'">Suivants</a> ';
              }
          }
          $list = '';
          while($row = mysqli_fetch_array($query, MYSQLI_ASSOC)){
              if ($row['lang'] =="en") $lang = 'class="lang1"';
              if ($row['lang'] =="fr") $lang = 'style="display:none;"';
          	$img = $row["img"];
          	$id = $row["id"];
          	$titre_encoded = $row["titre_encoded"];
          	$titre = $row["titre"];
          	$sstitre = $row["sstitre"];
          	$theme = $row["theme"];
          	$contenu = $row["contenu"];
          	$theme_encoded = $row["theme_encoded"];
          	$type = $row["type"];
          	$type_encoded = $row["type_encoded"];	
          	$date_creation = $row["date_creation"] ;
          	$auteur = $row["auteur"];
          	$hits = $row["hits"];
          
          
          
          $list .= '<li><header><h3>'.$titre.'</h3><item class="b creation">'.$date_creation.'</item> <item class="b auteur">'.$theme.'</item> <item class="b dossier">'.$auteur.'</item>
          <item class="b visite">'.$hits.' visites</item>
          
          </header>
          <a href="/'.$type_encoded.'/'.$theme_encoded.'/'.$titre_encoded.'" class="nolink"><img src="administration/upload/'.$img.'" alt="'.$titre.'" title="'.$titre.'"></a><a href="/'.$type_encoded.'/'.$theme_encoded.'/'.$titre_encoded.'"></a>
          	 
          	 <p>'.$sstitre.'... </p>
          	 <div id="sur-bouton2"><input type="submit" value="Lire la suite" id="button10"></div>
          	 
          	 
          	 <a href="en/'.$type_encoded.'/'.$theme_encoded.'/'.$titre_encoded.'" alt="English version" title="English version"></a>
          	 </li>
          	 
          	 
          	 
          	 ';	 
          }
          mysqli_close($db_conx);
          ?>


          Merci.
          Zedbar

          • Partager sur Facebook
          • Partager sur Twitter

          Last id

          × 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