
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
|

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.
|

Membre
|
il m'affiche cela
Call to a member function query() on a non-object
|

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’ est pas mit à 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é(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é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é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 être connecté pour accéder à 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">
© 2010 Naveo - Design by cenker <br/>
Ce site est la propriété 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
|

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. )
|

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..
|

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 ?
|

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
|

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 ?
|

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
|