Créer un compte
Connexion

limite de message par page

Pour créer et répondre aux sujets, vous devez être connecté.
Pages: 1
Auteur Message
cenker
09/02/2011 à 12:47:07
cenker
Membre
Bonjour j'aimerais un peu d'aide concernant la messagerie..
j'aimerais que par exemple imaginons que nous ayant 15 messages, les 5 premiers messages s'affiches sur la page 1 puis les 5 suivants sur la page 2 et les 5 derniers sur la page 3 comme sur hotmail ect..

voila :) merci d'avance pour votre aide

tubasa
09/02/2011 à 14:12:17
tubasa
Membre
Bonjour,

voici le code que j'utilise pour ça :
$reponse=$bdd->query('SELECT COUNT(*)AS id FROM tabase ORDER BY id DESC');
 $donnees=$reponse->fetch();
 $nombre_de_messages_par_page=5;
        $total_des_messages= $donnees['id'];
        $pages=ceil($total_des_messages/$nombre_de_messages_par_page);
        if (isset($_GET['page']))
{
        $page = $_GET['page'];
}
else
{
        $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
$premier_message_a_afficher = ($page - 1) * $nombre_de_messages_par_page;

 $reponse=$bdd->query('SELECT tes messages  FROM tabase ORDER BY id DESC LIMIT ' . $premier_message_a_afficher . ', ' . $nombre_de_messages_par_page);
 

ensuite tu fais

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

Un bon exemple de ce code sur le Site Du Zero : http://www.siteduzero.com/tutoriel-3-14547-un-livre-d-or.html

En esperant que ça t'aide.

cenker
09/02/2011 à 14:42:50
cenker
Membre
il m'affiche cela
Call to a member function query() on a non-object


cenker
09/02/2011 à 14:49:20
cenker
Membre
<?php
include('config.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Nixsis</title>    
                <meta name="robots" content="all,index,follow" />
        <meta name="Content-language" content="French" />
        <meta name="revisit-after" content="1 days" />
        <meta name="distribution" content="Global" />
        <meta name="rating" content="general" />              
                <meta http-equiv="Content-language" content="fr" />
                <meta http-equiv="Content-Style-Type" content="text/css" />
                <meta http-equiv="Content-Type" content="text/html; charset=utf8" />          
                <link rel="stylesheet" type="text/css" href="css/global.css" />
        </head>
<?php
//On verifie que lutilisateur est connecte
if(isset($_SESSION['username']))
{
//On affiche la liste des messages de l'utilisateur sous la forme dun tableau
//Deux requettes sont executees, une pour recuperer les messages non-lus et une pour les messages lus
$req1 = mysql_query('select m1.id, m1.title, m1.timestamp, count(m2.id) as reps, users.id as userid, users.username from pm as m1, pm as m2,users where ((m1.user1="'.$_SESSION['userid'].'" and m1.user1read="no" and users.id=m1.user2) or (m1.user2="'.$_SESSION['userid'].'" and m1.user2read="no" and users.id=m1.user1)) and m1.id2="1" and m2.id=m1.id group by m1.id order by m1.id desc');
$req2 = mysql_query('select m1.id, m1.title, m1.timestamp, count(m2.id) as reps, users.id as userid, users.username from pm as m1, pm as m2,users where ((m1.user1="'.$_SESSION['userid'].'" and m1.user1read="yes" and users.id=m1.user2) or (m1.user2="'.$_SESSION['userid'].'" and m1.user2read="yes" and users.id=m1.user1)) and m1.id2="1" and m2.id=m1.id group by m1.id order by m1.id desc');

//Supression du message
if ($suppr) {
$result=mysql_query ("DELETE FROM pm WHERE id='$suppr'") or die ("Erreur de suppression");}

$req3= mysql_query('SELECT message FROM pm ORDER BY id DESC');
 $donnees= mysql_fetch_array($req3);
 $nombre_de_messages_par_page=5;
        $total_des_messages= $donnees['id'];
        $pages=ceil($total_des_messages/$nombre_de_messages_par_page);
        if (isset($_GET['page']))
{
        $page = $_GET['page'];
}
else
{
        $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
$premier_message_a_afficher = ($page - 1) * $nombre_de_messages_par_page;

 $result=mysql_query ('SELECT message FROM pm ORDER BY id DESC LIMIT ' . $premier_message_a_afficher . ', ' . $nombre_de_messages_par_page);
?>    
        <body>
                <div id="wrapper">
                        <div id="header">
<div class="limites"></div>    
<div id='espace'>
<br/>
<br/>
                                <img src="images/anonyme.png" alt="logo"  width="48" height="48" alt="" style="float:left; margin:0 10px;" />
<p>Attention cette section n&#146; est pas mit &agrave; jours quotidiennement..</p>
<br/>
<br/>
                                </div>
                        </div>        
                        <ul id="speedbar">
                                <li><a href="index.php" ><img src="images/icons/accueil.png" alt="accueil" /><b>Accueil</b></a></li>                                                                  
                            <li><a href="http://board.nixsis.powa.fr/index.php"><img src="../images/forum.png" width="26"alt="forum"> <b>Forum</b></a></li>
                                <li><a href="propos.html"><img src="../images/propos.png" width="26"alt="propos" /><b>A propos</b></a></li>
                           <li><a href="services.php"><img src="../images/service.png"width="26" alt="services" /><b>Nos services</b></a></li>
                           <li><a href="contact.html"><img src="../images/contact.png"width="26" alt="contact" /><b>Nous contacter</b></a></li>
                          </ul>
                        <div id="middle">
                        <div id="menu_messagerie">
                                <ul class="right"id="menu">
                                        <li class="title bigest"><h2>Votre<br/> messagerie</h2></li>
                                        <br/>
                                        <li><a href="new_pm.php">Envoyer un message</a></li>
                                        <li><a href="envmessagerie.php">Message(s) envoy&eacute;(s)</a></li>
                                        <li><a href="messagerie.php">Boite de messagerie</a></li>
                                </ul></div>
                                                                <div id="content">
                                                                <br>
                                                                <br>
                                                                <div id="menu_reception">
Voici la liste de vos messages:<br/>

<h3>Messages non-lus(<?php echo intval(mysql_num_rows($req1)); ?>):</h3>
<table>
        <tr>
        <th class="title_cell">Titre</th>
        <th>Nb. R&eacute;ponses</th>
        <th>Participant</th>
        <th>Date d'envoi</th>
                <th>Supprimer</th>
    </tr>
<?php
//On affiche la liste des messages non-lus
while($dn1 = mysql_fetch_array($req1))
{
?>
        <tr>
        <td class="left"><a href="read_pm.php?id=<?php echo $dn1['id']; ?>"><?php echo htmlentities($dn1['title'], ENT_QUOTES, 'UTF-8'); ?></a></td>
        <td><?php echo $dn1['reps']-1; ?></td>
        <td><a href="profile.php?id=<?php echo $dn1['userid']; ?>"><?php echo htmlentities($dn1['username'], ENT_QUOTES, 'UTF-8'); ?></a></td>
        <td><?php echo date('d/m/Y H:i:s' ,$dn1['timestamp']); ?></td>
               
    </tr>
<?php
}
//Sil na aucun message non-lu, on le dit
if(intval(mysql_num_rows($req1))==0)
{
?>
        <tr>
        <td colspan="4" class="center">Vous n'avez aucun message non-lu.</td>
    </tr>
<?php
}
?>
</table>
<br />
<h3>Messages lus(<?php echo intval(mysql_num_rows($req2)); ?>):</h3>
<table>
        <tr>
        <th class="title_cell">Titre</th>
        <th>Nb. R&eacute;ponses</th>
        <th>Participant</th>
        <th>Date d'envoi</th>
                <th>Supprimer</th>
    </tr>
<?php
//On affiche la liste des messages lus
while($dn2 = mysql_fetch_array($req2))

{
?>
        <tr>
        <td class="left"><a href="read_pm.php?id=<?php echo $dn2['id']; ?>"><?php echo htmlentities($dn2['title'], ENT_QUOTES, 'UTF-8'); ?></a></td>
        <td><?php echo $dn2['reps']-1; ?></td>
        <td><a href="profile.php?id=<?php echo $dn2['userid']; ?>"><?php echo htmlentities($dn2['username'], ENT_QUOTES, 'UTF-8'); ?></a></td>
        <td><?php echo date('d/m/Y H:i:s' ,$dn2['timestamp']); ?></td>
                <td>
         <a href="messagerie.php?suppr=<?php echo $dn2['id']; ?>"><center><img src="http://www.widgetvalley.com/img/delete.png"width="16"  /></center></a></td></td>

        <?php
                echo 'page: ';
        for($i=1;$i<=$pages;$i++)
        {
        echo '<a href="messagerie.php?page= '. $i .'">' . $i . '</a> ';
        }?>
   </tr>
<?php
}
//Sil na aucun message lu, on le dit
if(intval(mysql_num_rows($req2))==0)
{
?>
        <tr>
        <td colspan="4" ><center><img src="http://www.lbcreationimagia.123.fr/wp-content/themes/rt_crystalline_wp/images/icons/icon-warning.png"width="16"/>Vous n'avez aucun message lu.</center></td>
    </tr>
<?php
}
?>
</table>
<?php
}
else
{
        echo 'Vous devez &ecirc;tre connect&eacute; pour acc&eacute;der &agrave; cette page.';
}
?>
                        <p class="clear"></p>
                                </div>                
                <br/>
                                <br/>
                                <br/>
                                <div id="footer">
                                        <ul>
                                                <li><a href="#"><img src="" alt="" /></a></li>
                                                <li class="tcenter">
                                                        &copy; 2010 Naveo - Design by cenker <br/>
                                                        Ce site est la propri&eacute;t&eacute; exclusive de ses auteurs <br/>
                                                </li>
                                                <li>
                                                        Informations :<br/>
                                                        Site en construction !!<br/>                                          
                                                </li>
                                                <li class="final">
                                                        Contact :<br />
                                                        Email : <a href="#">eddyjoron@gmail.com</a><br/>
                                                        Site Principale : <a href="#">Naveo.powa.fr</a>
                                                </li>
                                        </ul>
                                        <p class="clear"> </p>
                                </div>
                        </div>
                </div>
        </body>
</html>
voila mon code sa marche pas :(

tubasa
09/02/2011 à 15:12:28
tubasa
Membre
En adaptant à ta manière (sans PDO) le code tu as fais une petite faute :
ce n'est pas :
mysql_query('SELECT message FROM pm ORDER BY id DESC'); mais :
mysql_query('SELECT COUNT(*) as  ID FROM pm ORDER BY ID DESC'); (il faut qu'un champ ID auto_increment soit crée dans ta base au préalable. )

cenker
11/02/2011 à 10:43:14
cenker
Membre
sa ne marche pas..
quelqu'un pourrait m'aider ^^"
je souhaite faire comme la liste des membres de SDW afficher page 1, 2 ect..

tubasa
11/02/2011 à 21:18:18
tubasa
Membre
Enfaite il fat revoir tout le début du code si j'ai bien compris tu as un message pour les messages lu et un pour les messages non-lu ??
Si oui tu les affiches sur la même page ou sur des pages séparées ?

blingcru
12/02/2011 à 01:00:54
blingcru
Membre
Mdr ses asser simple je vais te montrer comment on fais ..

un exemple

<?

$requete111 = $db->execute("select * from `ta table` where `user_id`=? ORDER BY `id` DESC LIMIT 0,10", array($user->id));
while ($alerte1 = $requete111->fetchrow());

$query = $db->execute("select * from `ta table` where `user_id`=? order by `id` desc LIMIT 0 , 5", array($user->id));

if ($query->recordcount() > 0)
{
        echo "";
        while ($log = $query->fetchrow())
        {
                echo "\n";
                echo $log['champ1'] . "   \n";
                echo $log['champ2'] . "   \n";
                echo "\n<br />\n";
        }
}
else
{
        echo "Pas de message!";
}
 ?>


https://guerredesgangs.net & http://www.bazinio.ca & http://www.thestreet2.ca
NicolasNicla
13/05/2013 à 18:11:49
NicolasNicla
Membre
FAUT METTRE CE CODE OU
Parce que moi, soit le code n'a pas d'effet ou soit il m'affiche "Call to a member function query() on a non-object"

Snif, quelqu'un peut-il m'aider ?

Testweb
18/05/2013 à 22:10:18
Testweb
Membre
Help Please ça fait des heures que je cherche comment metitre une limite de messages par page, le vrai problème est que comme je débute en php je ne comprend pas où mettre le code qui permet de mettre les messages sur plusieurs pages.

 :( Help SVP

Pages: 1