8795 sujets

Développement web côté serveur, CMS

Bonjour,

J'ai un problem quand j'essai de faire un lien d'une page vers une autre avec une ancre en PHP.

Enfait en cliquant sur un lien sur la premiere page jaimerais que la deuxieme page retombe automatiquement sur le meme article que sur le lien sur lequel j'ai cliqué (il y a plusieurs pages il ne faut pas oublier).


Premiere page: http://www.articlesfromparis.com/francais/archivefr.php
Deuxieme page: http://www.articlesfromparis.com/francais/archivefrall.php

Code de la premiere page: (bizarement ca bug et ca naffiche que les parties en HTML quand je met
donc du coup j'ai mi sans le
, je suis désolé)

<div id="mainContent">


      
        <h1>Archive <a href="archivefrall.php">(voir les articles en entier)</a></h1>
        


        
<p class="pages">
            
        <?php
mysql_connect("localhost", "sdad", "asdad");
mysql_select_db("asdad");



        

  

$nombreDeMessagesParPage = 10;

$retour = mysql_query('SELECT COUNT(*) AS nb_news FROM articlefr');
$donnees = mysql_fetch_array($retour);
$totalDesMessages = $donnees['nb_news'];

$nombreDePages  = ceil($totalDesMessages / $nombreDeMessagesParPage);

echo 'Page : ';
for ($i = 1; $i <= $nombreDePages; $i++)
{
    echo '<a href="archivefr.php?page=' . $i . '">' . $i . '</a> ';
}
?>

</p>


<?php




if (isset($_GET['page']))
{
        $page = $_GET['page'];
}
else
{
        $page = 1;
}


$n= $premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;

$retour = mysql_query('SELECT * FROM articlefr ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
?>



<ul style="font-size: 12px;font-weight: bold;">
        <?php

        while ($donnees = mysql_fetch_array($retour))
        {?>
           <li><?php
            
              $n++;
              echo $n;
              echo '. <a href="archivefrall.php">';
                  $titre = nl2br(stripslashes($donnees['titre']));
                  echo $titre;
              echo '</a>';?>
          </li><?php
        } ?>
      </ul>

  <br />








<p class="pages">
            
<?php            
echo 'Page : ';
for ($i = 1; $i <= $nombreDePages; $i++)
{
    echo '<a href="archivefr.php?page=' . $i . '">' . $i . '</a> ';
}
?>
</p>

        
            
            
            
            
            
            
            
            
            

      </div>
Code de la deuxieme page:


<div id="mainContent">


      
      
        <h1>Archive: les articles en entier</h1>

<p class="pages">
            
        <?php
mysql_connect("localhost", "asdad", "asdad");
mysql_select_db("asdada");



        
        // --------------- Etape 2 -----------------
// On écrit les liens vers chacune des pages
// -----------------------------------------

// On met dans une variable le nombre de messages qu'on veut par page
$nombreDeMessagesParPage = 5; // Essayez de changer ce nombre pour voir :o)
// On récupère le nombre total de messages
$retour = mysql_query('SELECT COUNT(*) AS nb_news FROM articlefr');
$donnees = mysql_fetch_array($retour);
$totalDesMessages = $donnees['nb_news'];
// On calcule le nombre de pages à créer
$nombreDePages  = ceil($totalDesMessages / $nombreDeMessagesParPage);
// Puis on fait une boucle pour écrire les liens vers chacune des pages
echo 'Page : ';
for ($i = 1; $i <= $nombreDePages; $i++)
{
    echo '<a href="archivefrall.php?page=' . $i . '">' . $i . '</a> ';
}
?>

</p>


<?php


// --------------- Etape 3 ---------------
// Maintenant, on va afficher les messages
// ---------------------------------------

if (isset($_GET['page']))
{
        $page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse (arkivalla.php?page=4)
}
else // La variable n'existe pas, c'est la première fois qu'on charge la page
{
        $page = 1; // On se met sur la page 1 (par défaut)
}

// On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
$n= $premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;

$retour = mysql_query('SELECT * FROM articlefr ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
?>




        <?php

while ($donnees = mysql_fetch_array($retour))
{
?>



<ul style="font-size: 12px;font-weight: bold;">

           <li><?php
            
              $n++;
              echo $n;
              echo '. ';
              
                  $titre = nl2br(stripslashes($donnees['titre']));
                  echo $titre;
              ?>
          </li>
      

</ul>


        
        
        


    <p>
    <?php
  
    $contenu = nl2br(stripslashes($donnees['contenu']));
                $contenu = preg_replace('#\[gras\](.+)\/gras\#isU', '<strong>$1</strong>', $contenu);
    $contenu = preg_replace('#\[italique\](.+)\/italique\#isU', '<em>$1</em>', $contenu);
    $contenu = preg_replace('#\[color=(red|green|blue|yellow|purple|olive)\](.+)\/color\#isU', '<span style="color:$1">$2</span>', $contenu);
    $contenu = preg_replace('#http://[a-z0-9._/-]+#i', '<a href="$0">$0</a>', $contenu);
    $contenu = preg_replace ('#\[img\](.+)\/img\#iU', '<img src="../images/$1.jpg" alt="$1" style="float:right;margin:10px;margin-right:0px;" />', $contenu);
    echo $contenu;
    ?>
    </p>
    
            <p><em> Anne Edelstam <?php echo date('d/m/Y k\l H\hi', $donnees['timestamp']); ?></em></p><br />
    
<?php
} // Fin de la boucle des news
?>
      




        
            
<p class="pages">
            
<?php            
echo 'Page : ';
for ($i = 1; $i <= $nombreDePages; $i++)
{
    echo '<a href="archivefrall.php?page=' . $i . '">' . $i . '</a> ';
}
?>
</p>            
            
            
            
            

      </div> 

Modifié par Heyoan (10 Mar 2010 - 00:13)
Salut,

déjà ton utilisation d'une liste (UL/LI) n'a pas de sens dans la seconde page puisque ce n'en est pas une : tu codes
<ul>
	<li>1. un titre</li>
</ul>
et plus loin
<ul>
	<li>2. un autre titre</li>
</ul>
Je dirais qu'il s'agit plutôt de titres (H2 par exemple).

Pour ce qui est de la première page pourquoi ne pas utiliser OL/LI ?

Concernant ta question quel est l'intérêt d'afficher tous les articles à la suite les uns des autres ? Il suffirait que les liens de la première page pointent vers une page article.php en passant un id_article en paramètre. Smiley murf
merci pour la petite correction.
enfait je voudrais afficher les messages a la suite pour que quand on lit un article on puisse passer facilement au prochain article juste en faisant un petit scroll.