Pages: 1
|
Membre
|
Bonjour, je suis nouveau ici
dans mon site j'ai une page de news, j'aimerai limité par exemple a 20 news par page donc la 21eme sera sur la page 2
Vous savez comment faire?
J'allais oublié BONNE FETE A TOUS!!!!
|
Admin
|
Bonjour,
Bienvenue parmi nous
Peut-tu nous donner le code que tu utilise pour afficher tes news.
Cordialement et joyeux nouvel an à toi aussi.
|
Membre
|
Je pense qu'il les a dans sa base de donnée est qu'il les affiches ensuite sur une page news.php par exemple ... Si c'est ca je suis preneur du code aussi :clin:
Ah et c'est cool la checkbox "Notification par Email lors de nouveaux messages" du forum du SDW
|
Membre
|
Voici le code pour afficher les news, je les ai limiter a 15 car je ne savais pas mettre plusieurs pages
<?php// Fonction pour construire une table à partir des résultat de la requête
function buildnewsTable {
// Construire la requete
$query = "SELECT news,maj,date_format(maj,'%Y-%m-%d') lastmaj
FROM news ORDER BY maj DESC LIMIT 0,15";
// Executer la requete
$result = mysql_query($query) or die('Erreur SQL !<br>'.$result.mysql_error());
$lines = '';
$now = new DateTime(date('Y-m-d'));
while ($row = mysql_fetch_array($result)) {
$lastmaj = new DateTime($row['lastmaj']);
if( $row['lastmaj'] <= 7)$style = 'background-color:red';
else $style = 'background-color:#D8D9EF';
$lines .= '
<tr style="'.$style.'">
<td>'.$row['maj'].'</td>
<td>'.$row['news'].'</td>
</tr>';
}
return '
<table border="3" cellpadding=5 cellspacing=5 height=50>
<tr>
<th style="background-color:#F63744; font-size:18px;"> Date </th>
<th style="background-color:#F63744;width:400px;font-size:18px;"> Mise A Jour</th>
</tr>'.$lines.'
</table>';
}
//Construire le tableau à partir du résultat de la requête
$table = buildnewsTable("");
echo $table;
?>
Merci de votre aide!
|
Membre
|
J'ai trouvé une méthode , tu limite les news aux 5 dernières par exemple , et tu met un lien "voir les autres news" et la tu met le reste (ou alors les 10 dernières et tu continue comme ca ...)
|
Membre
|
tu fais comment pour faire ça?
|
Admin
|
Bonjour,
Voici le code à utiliser:
<?php
// Fonction pour construire une table à partir des résultat de la requête
function buildnewsTable {
$nb_msgs_page = 20;//Nombre de messages par page
$nb_messages = mysql_fetch_array(mysql_query('select count(*) as nb from new'));
$nb_messages = $nb_messages['nb'];
$page = $_GET['page'];
$nb_pages = ceil($nb_messages/$nb_msgs_page);
$pages_code = 'Pages: ';
for($i=1;$i<=$nb_pages;$i++)
{
if($i>1)
{
$pages_code .= ' - ';
}
$pages_code .= '<a href="?page='.$i.'">'.$i.'</a>';
}
$premier_message = ($page-1)*$nb_msgs_page;
// Construire la requete
$query = "SELECT news,maj,date_format(maj,'%Y-%m-%d') lastmaj
FROM news ORDER BY maj DESC LIMIT ".$premier_message.",".$nb_msgs_page;
// Executer la requete
$result = mysql_query($query) or die('Erreur SQL !<br>'.$result.mysql_error());
$lines = '';
$now = new DateTime(date('Y-m-d'));
while ($row = mysql_fetch_array($result)) {
$lastmaj = new DateTime($row['lastmaj']);
if( $row['lastmaj'] <= 7)$style = 'background-color:red';
else $style = 'background-color:#D8D9EF';
$lines .= '
<tr style="'.$style.'">
<td>'.$row['maj'].'</td>
<td>'.$row['news'].'</td>
</tr>';
}
return $pages_code.'
<table border="3" cellpadding=5 cellspacing=5 height=50>
<tr>
<th style="background-color:#F63744; font-size:18px;"> Date </th>
<th style="background-color:#F63744;width:400px;font-size:18px;"> Mise A Jour</th>
</tr>'.$lines.'
</table>'.$pages_code;
}
//Construire le tableau à partir du résultat de la requête
$table = buildnewsTable("");
echo $table;
?>
Je n'ai pas essayé, mais ça devrait fonctionner.
Cordialement
|
Membre
|
Bonjour, maintenant j' ai ses erreurs:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\essaie\accueil.php on line 64
Notice: Undefined index: page in C:\wamp\www\essaie\accueil.php on line 66
Erreur SQL !
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-10,10' at line 1
|
Membre
|
Pour faire ca :<?php
mysql_connect(DB_HOST,DB_LOGIN,DB_PASS); //identifiants mysql
mysql_select_db(DB_BDD);
$sql="SELECT * FROM news ORDER BY id DESC LIMIT 0,2;"; // 2 news pour la page d'accueil DESC=afficher les dernières news (les plus récentes ) en premier
$req = mysql_query($sql) or die ('Erreur SQL ! <br> '.$sql.'<br>'.mysql_error());
while($data=mysql_fetch_assoc($req)){
echo "<div style=\"padding:10px;background:#000000;border:2px solid #grey;border-radius:21px;-moz-border-radius:21px;-webkit-border-radius:21px;\">
<center><font color=\"gold\"><img src=\"http://www.koopa-legends.legtux.org/02.png\" /><font size=\"5\" color=\"green\">~ </font><font size=\"5\">{$data["titre"]} <font color=\"green\">~ </font></font></font><img src=\"http://www.koopa-legends.legtux.org/01.png\" /></center> </div><br> ";
echo "<em><u>Posté par:<b>{$data["auteur"]}</b>";
echo " Le:".date("j/n/Y G:i:s",strtotime($data["date"]))."</u></em>";
echo "<br><br>{$data["contenu"]}<hr><br>";
}
?>
Et dessous un lien : "acceder aux autres news" et sur cette autre pages de news : tu supprime LIMIT donc :<?php
mysql_connect(DB_HOST,DB_LOGIN,DB_PASS); //identifiants mysql
mysql_select_db(DB_BDD);
$sql="SELECT * FROM news ORDER BY id DESC "; // 2 news pour la page d'accueil DESC=afficher les dernières news (les plus récentes ) en premier
$req = mysql_query($sql) or die ('Erreur SQL ! <br> '.$sql.'<br>'.mysql_error());
while($data=mysql_fetch_assoc($req)){
echo "<div style=\"padding:10px;background:#000000;border:2px solid #grey;border-radius:21px;-moz-border-radius:21px;-webkit-border-radius:21px;\">
<center><font color=\"gold\"><img src=\"http://www.koopa-legends.legtux.org/02.png\" /><font size=\"5\" color=\"green\">~ </font><font size=\"5\">{$data["titre"]} <font color=\"green\">~ </font></font></font><img src=\"http://www.koopa-legends.legtux.org/01.png\" /></center> </div><br> ";
echo "<em><u>Posté par:<b>{$data["auteur"]}</b>";
echo " Le:".date("j/n/Y G:i:s",strtotime($data["date"]))."</u></em>";
echo "<br><br>{$data["contenu"]}<hr><br>";
}
?>
J'ai laissé les balises de mise en forme de mon site ( tous les div et <font> ) mais tu peux les supprimer ...
Quelle est l'adresse de ton site ? Tu ne l'as pas mis dans ta signature....
|
Admin
|
Bonjour,
@Lolo44: guilstunt veut un système de page toi ton code affiche toutes les news dans une seul page(et deux dans la page d'accueil).
@guilstunt peut-tu donner le code de la page d'accueil(accueil.php)
Cordialement
|
Membre
|
Voici toute ma page d'accueil.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>jeux de role</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="combats" href="presentation.css" />
<?php include ("entete.php"); include("infos.php");
date_default_timezone_set('Europe/Paris');
$date = date("d-m-Y");
$heure= date("H:i");
?>
</head>
<body><br
<?php
include('menu.php');
if (isset($_SESSION['utilisateur']))
{
?>
<br>
<div id="corps">
<center>
<h2 style="color:black;background-color:#D8D9EF;border:3px double;width:auto;height: 40px; -moz-border-radius: 15px">Bonjour
<?php if(isset($_SESSION['utilisateur']))
{echo ' '.htmlentities($_SESSION['utilisateur']);}
?>, <?php echo"Nous sommes le $date et il est $heure"?> <br /><br /></h2></center>
<center>
<?php
// Fonction pour construire une table à partir des résultat de la requête
function buildnewsTable ($where='') {
$nb_msgs_page = 10;//Nombre de messages par page
$nb_messages = mysql_fetch_array(mysql_query('select count(*) as nb from new'));
$nb_messages = $nb_messages['nb'];
$page = $_GET['page'];
$nb_pages = ceil($nb_messages/$nb_msgs_page);
$pages_code = 'Pages: ';
for($i=1;$i<=$nb_pages;$i++)
{
if($i>1)
{
$pages_code .= ' - ';
}
$pages_code .= '<a href="?page='.$i.'">'.$i.'</a>';
}
$premier_message = ($page-1)*$nb_msgs_page;
// Construire la requete
$query = "SELECT news,maj,date_format(maj,'%Y-%m-%d') lastmaj
FROM news ORDER BY maj DESC LIMIT ".$premier_message.",".$nb_msgs_page;
// Executer la requete
$result = mysql_query($query) or die('Erreur SQL !<br>'.$result.mysql_error());
$lines = '';
$now = new DateTime(date('Y-m-d'));
while ($row = mysql_fetch_array($result)) {
$lastmaj = new DateTime($row['lastmaj']);
if( $row['lastmaj'] <= 7)$style = 'background-color:red';
else $style = 'background-color:#D8D9EF';
$lines .= '
<tr style="'.$style.'">
<td>'.$row['maj'].'</td>
<td>'.$row['news'].'</td>
</tr>';
}
return $pages_code.'
<table border="3" cellpadding=5 cellspacing=5 height=50>
<tr>
<th style="background-color:#F63744; font-size:18px;"> Date </th>
<th style="background-color:#F63744;width:400px;font-size:18px;"> Mise A Jour</th>
</tr>'.$lines.'
</table>'.$pages_code;
}
//Construire le tableau à partir du résultat de la requête
$table = buildnewsTable("");
echo $table;
?>
</center>
</div><? }
else
{
?>
<center>
La connection est obligatoire pour acceder à cette page.<br />
<a href="connection.php">se connecter</a>
</center>
<?php
}
?></body>
</html>
|
Admin
|
Bonjour,
Le problème, c'est que j'ai oublié un "s" dans news, voici le code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>jeux de role</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="combats" href="presentation.css" />
<?php include ("entete.php"); include("infos.php");
date_default_timezone_set('Europe/Paris');
$date = date("d-m-Y");
$heure= date("H:i");
?>
</head>
<body><br
<?php
include('menu.php');
if (isset($_SESSION['utilisateur']))
{
?>
<br>
<div id="corps">
<center>
<h2 style="color:black;background-color:#D8D9EF;border:3px double;width:auto;height: 40px; -moz-border-radius: 15px">Bonjour
<?php if(isset($_SESSION['utilisateur']))
{echo ' '.htmlentities($_SESSION['utilisateur']);}
?>, <?php echo"Nous sommes le $date et il est $heure"?> <br /><br /></h2></center>
<center>
<?php
// Fonction pour construire une table à partir des résultat de la requête
function buildnewsTable ($where='') {
$nb_msgs_page = 10;//Nombre de messages par page
$nb_messages = mysql_fetch_array(mysql_query('select count(*) as nb from news'));
$nb_messages = $nb_messages['nb'];
$page = $_GET['page'];
$nb_pages = ceil($nb_messages/$nb_msgs_page);
$pages_code = 'Pages: ';
for($i=1;$i<=$nb_pages;$i++)
{
if($i>1)
{
$pages_code .= ' - ';
}
$pages_code .= '<a href="?page='.$i.'">'.$i.'</a>';
}
$premier_message = ($page-1)*$nb_msgs_page;
// Construire la requete
$query = "SELECT news,maj,date_format(maj,'%Y-%m-%d') lastmaj
FROM news ORDER BY maj DESC LIMIT ".$premier_message.",".$nb_msgs_page;
// Executer la requete
$result = mysql_query($query) or die('Erreur SQL !<br>'.$result.mysql_error());
$lines = '';
$now = new DateTime(date('Y-m-d'));
while ($row = mysql_fetch_array($result)) {
$lastmaj = new DateTime($row['lastmaj']);
if( $row['lastmaj'] <= 7)$style = 'background-color:red';
else $style = 'background-color:#D8D9EF';
$lines .= '
<tr style="'.$style.'">
<td>'.$row['maj'].'</td>
<td>'.$row['news'].'</td>
</tr>';
}
return $pages_code.'
<table border="3" cellpadding=5 cellspacing=5 height=50>
<tr>
<th style="background-color:#F63744; font-size:18px;"> Date </th>
<th style="background-color:#F63744;width:400px;font-size:18px;"> Mise A Jour</th>
</tr>'.$lines.'
</table>'.$pages_code;
}
//Construire le tableau à partir du résultat de la requête
$table = buildnewsTable("");
echo $table;
?>
</center>
</div><? }
else
{
?>
<center>
La connection est obligatoire pour acceder à cette page.<br />
<a href="connection.php">se connecter</a>
</center>
<?php
}
?></body>
</html>
Cordialement
|
Membre
|
Bonjour, maintenant j'ai cette erreur:
Notice: Undefined index: page in C:\wamp\www\essaie\accueil.php on line 66
Erreur SQL !
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-10,10' at line 1
|
Membre
|
@Ybouane , moi j'utilise deux pages (index.php et news.php) mais il peut en faire autant qu'il veut mais ca ne sera pas automatique ...
|
Admin
|
Bonjour,
essaye:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>jeux de role</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="combats" href="presentation.css" />
<?php include ("entete.php"); include("infos.php");
date_default_timezone_set('Europe/Paris');
$date = date("d-m-Y");
$heure= date("H:i");
?>
</head>
<body><br
<?php
include('menu.php');
if (isset($_SESSION['utilisateur']))
{
?>
<br>
<div id="corps">
<center>
<h2 style="color:black;background-color:#D8D9EF;border:3px double;width:auto;height: 40px; -moz-border-radius: 15px">Bonjour
<?php if(isset($_SESSION['utilisateur']))
{echo ' '.htmlentities($_SESSION['utilisateur']);}
?>, <?php echo"Nous sommes le $date et il est $heure"?> <br /><br /></h2></center>
<center>
<?php
// Fonction pour construire une table à partir des résultat de la requête
function buildnewsTable ($where='') {
$nb_msgs_page = 10;//Nombre de messages par page
$nb_messages = mysql_fetch_array(mysql_query('select count(*) as nb from news'));
$nb_messages = $nb_messages['nb'];
if(isset($_GET['page']))
{
$page = $_GET['page'];
}
else
{
$page=1;
}
$nb_pages = ceil($nb_messages/$nb_msgs_page);
$pages_code = 'Pages: ';
for($i=1;$i<=$nb_pages;$i++)
{
if($i>1)
{
$pages_code .= ' - ';
}
$pages_code .= '<a href="?page='.$i.'">'.$i.'</a>';
}
$premier_message = ($page-1)*$nb_msgs_page;
// Construire la requete
$query = "SELECT news,maj,date_format(maj,'%Y-%m-%d') lastmaj
FROM news ORDER BY maj DESC LIMIT ".$premier_message.",".$nb_msgs_page;
// Executer la requete
$result = mysql_query($query) or die('Erreur SQL !<br>'.$result.mysql_error());
$lines = '';
$now = new DateTime(date('Y-m-d'));
while ($row = mysql_fetch_array($result)) {
$lastmaj = new DateTime($row['lastmaj']);
if( $row['lastmaj'] <= 7)$style = 'background-color:red';
else $style = 'background-color:#D8D9EF';
$lines .= '
<tr style="'.$style.'">
<td>'.$row['maj'].'</td>
<td>'.$row['news'].'</td>
</tr>';
}
return $pages_code.'
<table border="3" cellpadding=5 cellspacing=5 height=50>
<tr>
<th style="background-color:#F63744; font-size:18px;"> Date </th>
<th style="background-color:#F63744;width:400px;font-size:18px;"> Mise A Jour</th>
</tr>'.$lines.'
</table>'.$pages_code;
}
//Construire le tableau à partir du résultat de la requête
$table = buildnewsTable("");
echo $table;
?>
</center>
</div><? }
else
{
?>
<center>
La connection est obligatoire pour acceder à cette page.<br />
<a href="connection.php">se connecter</a>
</center>
<?php
}
?></body>
</html>
cordialement
|
Membre
|
Merci c'est exactement ca que je voulais!!!!
Merci Ybouane
|
Pages: 1
|