par
olivxii » 26 janv. 2011, 22:05
bonjour, j'essaie de faire une pagination afin de limiter le nombres d'articles postés par page.
mon soucis est que les articles postés ne son visible que si vous etes amis avec la personnes qui a posté.
ma fonction get pour l'affichage des articles :
function get_news() {
$answer = true;
$news = array();
$nb_articles = 25;
$begin = 0;
$nb_articles = ceil($news/$nb_articles);
$first_news_id = 0;
$last_news_id = $this->last_news_id;
- dans cette partie ==> $nb_articles = ceil(
$news/$nb_articles) je ne suis pas sur de cette variable
donc la j'ai bien 25 article sur la page, mais j'aimerais avoir un lien en bas de celle ci pour voir les suivants.
le soucis de ma table c'est que tout les articles se trouvent dans le meme champs.
voici ma requete :
switch ($this->type) {
case 'MAIN' : {
// Main Wall
if ($this->option != 'more') {
if ($this->filter == 'none') {
// Get the last news
$sel_req = "SELECT id FROM `".$this->config['bdd_table']
."news` WHERE (`id` > ".$this->last_news_id.") AND
(
(
(`type` = 'WALL')
AND
news_id IN (SELECT id from `".$this->config['bdd_table']."wall`
WHERE ( (`user_id` = '".$this->owner_id."') OR user_id IN
(SELECT friend_id FROM `".$this->config['bdd_table']."friends`
WHERE `user_id`='".$this->owner_id."'))
AND ( (`sender_id` = '".$this->owner_id."') OR `sender_id` in
(SELECT friend_id FROM `".$this->config['bdd_table']."friends`
WHERE `user_id`='".$this->owner_id."'))
)
)
OR
(
(`type` = 'STATUTE')
AND (`user_id` in (SELECT friend_id FROM `".$this->config['bdd_table']
."friends` WHERE `user_id`='".$this->owner_id."')
OR (`user_id`='".$this->owner_id."') )
)
)
ORDER BY date DESC limit ".$begin.",".$nb_articles.";";
}
pour la requete j'ai essayé :
switch ($this->type) {
case 'MAIN' : {
// Main Wall
if ($this->option != 'more') {
if ($this->filter == 'none') {
// Get the last news
$sel_req = "SELECT id FROM `".$this->config['bdd_table']
."news` WHERE (`id` > ".$this->last_news_id.") AND
(
(
(`type` = 'WALL')
AND
news_id IN (SELECT id from `".$this->config['bdd_table']."wall`
WHERE ( (`user_id` = '".$this->owner_id."') OR user_id IN
(SELECT friend_id FROM `".$this->config['bdd_table']."friends`
WHERE `user_id`='".$this->owner_id."'))
AND ( (`sender_id` = '".$this->owner_id."') OR `sender_id` in
(SELECT friend_id FROM `".$this->config['bdd_table']."friends`
WHERE `user_id`='".$this->owner_id."'))
)
)
OR
(
(`type` = 'STATUTE')
AND (`user_id` in (SELECT friend_id FROM `".$this->config['bdd_table']
."friends` WHERE `user_id`='".$this->owner_id."')
OR (`user_id`='".$this->owner_id."') )
)
)
order by date desc limit ".(($begin-0)*$nb_articles).",".$nb_articles.";";
ensuite la ligne :
for ($i=0;$i<=$nb_articles;$i++) {
echo "$i";
}
malheureusement sans resultat car ma page se vide de tout articles quand je place comme cela.
merci de votre aide
bonjour, j'essaie de faire une pagination afin de limiter le nombres d'articles postés par page.
mon soucis est que les articles postés ne son visible que si vous etes amis avec la personnes qui a posté.
ma fonction get pour l'affichage des articles :
[sql]
function get_news() {
$answer = true;
$news = array();
$nb_articles = 25;
$begin = 0;
$nb_articles = ceil($news/$nb_articles);
$first_news_id = 0;
$last_news_id = $this->last_news_id;
[/sql]
- dans cette partie ==> $nb_articles = ceil([b]$news[/b]/$nb_articles) je ne suis pas sur de cette variable
donc la j'ai bien 25 article sur la page, mais j'aimerais avoir un lien en bas de celle ci pour voir les suivants.
le soucis de ma table c'est que tout les articles se trouvent dans le meme champs.
voici ma requete :
[sql]
switch ($this->type) {
case 'MAIN' : {
// Main Wall
if ($this->option != 'more') {
if ($this->filter == 'none') {
// Get the last news
$sel_req = "SELECT id FROM `".$this->config['bdd_table']
."news` WHERE (`id` > ".$this->last_news_id.") AND
(
(
(`type` = 'WALL')
AND
news_id IN (SELECT id from `".$this->config['bdd_table']."wall`
WHERE ( (`user_id` = '".$this->owner_id."') OR user_id IN
(SELECT friend_id FROM `".$this->config['bdd_table']."friends`
WHERE `user_id`='".$this->owner_id."'))
AND ( (`sender_id` = '".$this->owner_id."') OR `sender_id` in
(SELECT friend_id FROM `".$this->config['bdd_table']."friends`
WHERE `user_id`='".$this->owner_id."'))
)
)
OR
(
(`type` = 'STATUTE')
AND (`user_id` in (SELECT friend_id FROM `".$this->config['bdd_table']
."friends` WHERE `user_id`='".$this->owner_id."')
OR (`user_id`='".$this->owner_id."') )
)
)
ORDER BY date DESC limit ".$begin.",".$nb_articles.";";
}
[/sql]
pour la requete j'ai essayé :
[sql]switch ($this->type) {
case 'MAIN' : {
// Main Wall
if ($this->option != 'more') {
if ($this->filter == 'none') {
// Get the last news
$sel_req = "SELECT id FROM `".$this->config['bdd_table']
."news` WHERE (`id` > ".$this->last_news_id.") AND
(
(
(`type` = 'WALL')
AND
news_id IN (SELECT id from `".$this->config['bdd_table']."wall`
WHERE ( (`user_id` = '".$this->owner_id."') OR user_id IN
(SELECT friend_id FROM `".$this->config['bdd_table']."friends`
WHERE `user_id`='".$this->owner_id."'))
AND ( (`sender_id` = '".$this->owner_id."') OR `sender_id` in
(SELECT friend_id FROM `".$this->config['bdd_table']."friends`
WHERE `user_id`='".$this->owner_id."'))
)
)
OR
(
(`type` = 'STATUTE')
AND (`user_id` in (SELECT friend_id FROM `".$this->config['bdd_table']
."friends` WHERE `user_id`='".$this->owner_id."')
OR (`user_id`='".$this->owner_id."') )
)
)
order by date desc limit ".(($begin-0)*$nb_articles).",".$nb_articles.";";
[/sql]
ensuite la ligne :
[php]
for ($i=0;$i<=$nb_articles;$i++) {
echo "$i";
}[/php]
malheureusement sans resultat car ma page se vide de tout articles quand je place comme cela.
merci de votre aide