8796 sujets

Développement web côté serveur, CMS

Bonjour!

Un apperçu en bas vous donne une petite idée de ce que je veux. J'explique :

Ma page index.php affiche par "ORDER BY id ASC LIMIT $limit_start,$pagination" donc une requête est une page. Je clique sur un chiffre, j'ai un affichage d'une image et un texte dans l'ordre d'entrée. Si j'ai trois données dans ma base, j'ai trois pages. Dans mon menu ça sera 1,2,3... à cause de la pagination. Le R est un lien qui va appeler la page rand.php.

Ma page rand.php affichage par "ORDER BY RAND() ASC LIMIT 1 " qui lui affiche dans un ordre aléatoire. J'arrive pas à inclure la pagination à cause que je vais me retrouver avec deux requètes et surement avec deux affichage $row['texto'].

Comment je pourrais combiner les deux que pour faire une seule page?

Voici les deux pages, ça serait apprécié d'avoir de l'aide. Merci :

Et la page avec pagination seulement INDEX.PHP:
if( isset($_GET['page']) && is_numeric($_GET['page']) )
  $page = $_GET['page'];
else
  $page = 1;
$pagination = 1;
$limit_start = ($page - 1) * $pagination;
$nb_total = mysql_query('SELECT COUNT(*) AS nb_total FROM poemes');
$nb_total = mysql_fetch_array($nb_total);
$nb_total = $nb_total['nb_total'];
$nb_pages = ceil($nb_total / $pagination);


$result = mysql_query("SELECT * FROM poemes ORDER BY id ASC LIMIT $limit_start,$pagination") or die(mysql_error());  

    while($row = mysql_fetch_array( $result )) {
            
echo '<div id="titretexto">';
        echo '<div id="titre"><div id="letitre">'.stripslashes(stripslashes($row['titre'])).'</div></div>';
        echo '<div style="height:450px;" id="texto"><div style="margin-top:30px;margin-left:30px;" id="letexto">'.nl2br(stripslashes(stripslashes($row['texto']))).'</div></div>';
        
echo '</div>';        

    echo '<div id="lesnombres"><span style="color:white;margin-left:3px;">Page : </span>';
    
      echo "<a class=\"page\" href=\"rand.php?page=R\"><span style=\"color:white;\">R</span></a>|";
    
      for ($i = 1 ; $i <= $nb_pages ; $i++) {
      if ($i == $page )
        echo "<span class=\"page\"><span style=\"background:#ffffff;color:#000000;\">$i</span></span> ";
      else
        echo "<a class=\"page\" href=\"index.php?page=$i\"><span style=\"color:white;\">$i</span></a>|";
      }
    echo '</div>';

    }


upload/29862-randumpage.jpg

La page avec randum seulement RAND.PHP:
$result = mysql_query("SELECT * FROM poemes ORDER BY RAND() ASC LIMIT 1") or die(mysql_error());  
    while($row = mysql_fetch_array( $result )) {
            
echo '<div id="titretexto">';
        echo '<div id="titre"><div id="letitre">'.stripslashes(stripslashes($row['titre'])).'</div></div>';
        echo '<div style="height:450px;" id="texto"><div style="margin-top:30px;margin-left:30px;" id="letexto">'.nl2br(stripslashes(stripslashes($row['texto']))).'</div></div>';
echo '</div>';        

    echo '<div id="lesnombres"><span style="color:white;margin-left:3px;">Page : </span>';
        echo "<a class=\"page\" href=\"?page=R\"><span style=\"color:white;\">R</span></a>|";
    echo '</div>';

    }


Le menu de celui-ci n'a pas de lien de pages comme 1,2,3... mais juste un R pour afficher que rand.php à nouveau.
Modifié par dan4 (06 Aug 2010 - 21:36)
Salut,

hem... pas sûr d'avoir tout compris mais à tout hasard : si tu veux en plus de ta pagination normale avoir un lien randomize pourquoi ne pas tout simplement alimenter un array avec tous les id des pages disponibles (ceux de ta pagination normale) et d'en affecter un au randomize avec mt_rand ?
Heyoan a écrit :
Salut,

hem... pas sûr d'avoir tout compris mais à tout hasard : si tu veux en plus de ta pagination normale avoir un lien randomize pourquoi ne pas tout simplement alimenter un array avec tous les id des pages disponibles (ceux de ta pagination normale) et d'en affecter un au randomize avec mt_rand ?


Des textes sont ajoutés occasionnellement dans la base de données.
Si j'ajoute un poème, ça fait 1 de plus dans le menu. C'est 1 poème par page.


un seul : $row['texto'] qui va aller chercher dans :

$result = mysql_query("SELECT * FROM poemes ORDER BY id ASC LIMIT $limit_start,$pagination")
si je clique sur les chiffres

ou bien

$result = mysql_query("SELECT * FROM poemes ORDER BY RAND() ASC LIMIT 1")
si je clique sur un lien randum.

Je crois que mon énigme se situe la.

????
Modifié par dan4 (06 Aug 2010 - 21:04)
Comme justement tu n'as qu'1 poème par page ($pagination=1) il suffit à priori de remplacer dans index.php
rand.php?page=R
par
index.php?page=".mt_rand(1, $nb_total)."
Du coup la page rand.php devient inutile.
RÉSOLU!!!!

Merci beaucoup!

C'est apprécié!

Heyoan a écrit :
Comme justement tu n'as qu'1 poème par page ($pagination=1) il suffit à priori de remplacer dans index.php
rand.php?page=R
par
index.php?page=".mt_rand(1, $nb_total)."
Du coup la page rand.php devient inutile.