Afficher les derniers posts phpBB sur une page quelconque

WRInaute passionné
Bonjour à tous,

J'aimerais affciher les derniers topics de mon forum PHPBB sur la page d'accueil de mon site (Xoops). Je précise que le forum est complètement indépendant de Xoops, ce n'est pas le module PHPBB qui est utilisé.
Connaissez vous un bon script/hack pour réaliser ceci?

Merci.
Sébastien.
 
WRInaute impliqué
moi j'ai créé mon propre script ( pas trop sorcier )

le voila si ça t'intéresse :

Code:
<?php 
$connection=mysql_connect("xxx","xxx","xxx");
mysql_select_db("xxx");
$sql=mysql_query("SELECT post_id,post_subject FROM phpbb_posts_text WHERE post_subject !='' ORDER BY post_id DESC LIMIT 0,10");
while($result=mysql_fetch_row($sql))
print '<a href=viewtopic.php?t='.$result[0].' >'.$result[1].'</a><br>';
?>

A+
 
WRInaute impliqué
Kali a dit:
Il faut chercher sur http://www.phpbb-fr.com le mod en question ?

au passage pas trop sympa le webmestre de ce site ... il ne répond pas aux messages privés :cry:

( même quand on n'accorde pas quelque chose on se doit de répondre toujours aux mail , pour moi c'est une règle ... simple question de savoir vivre ! )

du coup il est pas prêt de me revoir ( je m'étais inscrit sur son forum ) :evil:

( il s'en fout sûrement d'ailleurs mais bon ... )
 
WRInaute impliqué
merci du compliment :lol:

voila l'adresse

h**p://forum.netissimmo.net/accueil.php

pas trop fréquenté pour le moment ... il est tout récent ...

A+

Brice
 
WRInaute occasionnel
XenonDelee a dit:
moi j'ai créé mon propre script ( pas trop sorcier )

Je fais pareil sur ma page d'accueil sauf que ma requête est un peu différente :

Code:
SELECT topic_id, topic_title FROM phpbb_topics
WHERE topic_status = 0
ORDER BY topic_time DESC
LIMIT 10
 
Nouveau WRInaute
XenonDelee a dit:
moi j'ai créé mon propre script ( pas trop sorcier ), le voila si ça t'intéresse :
Vraimant très intéressant 8O et ça marche :p
Mais comment le modifier pour obtenir le titre des topics des 10 derniers messages :?:

PS: comme vous l'avez compris, je n'y connais rien en PHP et MySQL :cry:
 
WRInaute occasionnel
physyc a dit:
Mais comment le modifier pour obtenir le titre des topics des 10 derniers messages :?:

Au risque d'avoir 10 fois le même titre :? si les 10 derniers messages dépendent du même topic ?
 
WRInaute impliqué
XenonDelee a dit:
Kali a dit:
Il faut chercher sur http://www.phpbb-fr.com le mod en question ?

au passage pas trop sympa le webmestre de ce site ... il ne répond pas aux messages privés :cry:

( même quand on n'accorde pas quelque chose on se doit de répondre toujours aux mail , pour moi c'est une règle ... simple question de savoir vivre ! )

du coup il est pas prêt de me revoir ( je m'étais inscrit sur son forum ) :evil:

( il s'en fout sûrement d'ailleurs mais bon ... )
Il manquerait plus qu'il réponde aux MPs ....
Voici le lien vers le mod .
 
Nouveau WRInaute
samgaz a dit:
Au risque d'avoir 10 fois le même titre :? si les 10 derniers messages dépendent du même topic ?
Je suis conscient du problème mais le fonctionnement de mon forum me permet de prendre le risque :|

En fait, je veux mettre en évidence les réponses récentes à des sujets anciens :idea:
L'idéal serait d'éviter les doublons et donc d'obtenir les 10 topics différents ayant les messages les plus récents.
Mais c'est sans doute plus compliqué.

Merci de s'intéresser à mon problème et de me permettre de clarifier mes idées.
 
WRInaute impliqué
en fait les réponses ont un titre si l'internaute leur en donne un ...

sinon le champs titre est vide, d'ou WHERE post_subject !='' dans mon script ...

Est-ce que ça répond à ta question ?

A+
 
WRInaute impliqué
Dr DLP a dit:
Il manquerait plus qu'il réponde aux MPs ....

Celui de WRI lui répond ! et c'est pour ça que je reste sur ce forum !

question de principe ... histoire de pas prendre les autres pour de la m...
 
WRInaute impliqué
tu te moques :roll:

Sérieusement je dis pas qu'il faille abuser des messages privés mais bon le forum de phpbb il a l'air 100 fois moins fréquenté que celui de WRI alors il pourrrait faire un effort :evil:

Enfin de toute façon c'est une question de politesse ( désolé je suis peut-être vieux jeu mais pour moi ça veut dire quelque chose )

Bien cordialement

Brice
 
WRInaute impliqué
d'ailleurs dans le genre ... je me souviens t'en avoir envoyé un auquel tu n'as jamais répondu ...

drôle d'époque :cry:
 
WRInaute accro
mais non je me moques pas. mais disons que certains webmasters croulent sous la charge et bien sur, on pense remettre la réponse à demain.. et dans l'intervalle, y a d'autres messages urgentissimo qui viennent entre temps, etc.

prends mon cas par exemple : j'ai très exactement 811 mails a traiter depuis le 05 Juin :mrgreen:

... et je suis là, à te répondre, car je préfère l'aspect "rapide" et "ludique" de ce forum par rapport au mail ou au MP...
 
WRInaute impliqué
bon c'est sûr des fois c'est un peu titanesque comme boulot ...

Vous êtes absout mon fils :lol:

A + sur ce forum :wink:
 
Nouveau WRInaute
XenonDelee a dit:
en fait les réponses ont un titre si l'internaute leur en donne un ...
sinon le champs titre est vide, d'ou WHERE post_subject !='' dans mon script ...
Est-ce que ça répond à ta question ?
J'ai mis du temps à comprendre mais ça y est :idea:

Code:
<?php 
$connection=mysql_connect("xxx","xxx","xxx"); 
mysql_select_db("xxx"); 
$sql=mysql_query("SELECT post_id,post_subject FROM phpbb_posts_text WHERE post_subject !='' ORDER BY post_id DESC LIMIT 0,10"); 
while($result=mysql_fetch_row($sql)) 
print '<a href=viewtopic.php?t='.$result[0].' >'.$result[1].'</a><br>'; 
?>
En fait le code affiche les 10 derniers messages possédant un titre ...
Mais je voudrais les 10 derniers messages (avec ou sans titre) avec le titre du topic correspondant (cf message précédent )

Merci pour l'indication et désolé du retard ...

Physyc

PS: j'ai cru voir une petite erreur dans la dernière ligne:
viewtopic.php?p='.$result[0].' à la place de viewtopic.php?t='.$result[0].'
 
WRInaute impliqué
physyc a dit:
Mais je voudrais les 10 derniers messages (avec ou sans titre) avec le titre du topic correspondant (cf message précédent )

En fait il faudrait faire une requête sur trois tables ( phpbb_topics ; phpbb_posts_text et phpbb_posts ) ...

ça dépasse un peu mes compétences en sql :cry:

mais si tu trouves la réponse ça m'intéresse :lol:

A+
 
WRInaute discret
Celui de ma page d'accueil :

Je l'ai trouvé sur le forum phpBB et je l'ai modifié pour le mettre sous forme d'un tableau avec la date (le format peut être changé), le titre (limité aux 25 premiers caractères) et le posteur.

Code:
<?php
$sql = "SELECT t.topic_id, t.topic_title, t.topic_replies, t.topic_last_post_id, f.forum_id, f.forum_name, p.post_time, u.user_id, u.username
       FROM phpbb_topics AS t, phpbb_forums AS f, phpbb_posts AS p, phpbb_users AS u
       WHERE t.forum_id = f.forum_id
       AND f.auth_view < 3 AND f.auth_read < 3      
       AND t.topic_moved_id = 0
       AND p.post_id = t.topic_last_post_id
       AND u.user_id = p.poster_id
	   AND f.forum_id != 8
       ORDER BY t.topic_last_post_id DESC
       LIMIT 10";
if( !($result = mysql_query($sql)) )
{
   echo 'Impossible d\'obtenir les 10 derniers posts.';
}

while( $ary = mysql_fetch_array($result) )
{
   $xpostrow[] = $ary;
}

echo '<table border="0" width="100%">';
for( $i = 0; $i < count($xpostrow); $i++ )
{    
   $topic_title = htmlspecialchars(stripslashes($xpostrow[$i]['topic_title']));
   if( strlen($topic_title) > 25 )
   {
      $k = substr($topic_title, 0, 25);
      $pos = strrpos($k, " ");
      $k = substr($k, 0, $pos);
      $topic_title = $k . "...";
   }
   echo '<tr><td width="12%" class="news">' . date('G\Hi', $xpostrow[$i]['post_time']) . '</td>';   
   echo '<td width="53%" class="news"><a href="forums/viewtopic.php?p=' . $xpostrow[$i]['topic_last_post_id'] . '#' . $xpostrow[$i]['topic_last_post_id'] . '">' . $topic_title . '</a></td>';
   echo '<td width="35%" class="news">par <a href="forums/profile.php?mode=viewprofile&amp;u=' . $xpostrow[$i]['user_id'] . '">' . $xpostrow[$i]['username'] . '</a></td></tr>';
}
echo '</table>';
?>

J'ai un forum privé ( N°8 ) d'où le "AND f.forum_id != 8" :wink:
 
WRInaute discret
SELECT t.*,u.username,f.forum_name FROM phpbb_topics t,phpbb_users u
LEFT JOIN phpbb_forums f ON f.forum_id=t.forum_id
WHERE t.topic_poster=u.user_id
ORDER BY t.topic_time DESC LIMIT 0,50


la mienne..pour récupérer qq infos en plus sur les posts last..en vue d'un rss complet
 
WRInaute passionné
Salut,

Code:
<?php 
$connection=mysql_connect("xxx","xxx","xxx"); 
mysql_select_db("xxx"); 
$sql=mysql_query("SELECT post_id,post_subject FROM phpbb_posts_text WHERE post_subject !='' ORDER BY post_id DESC LIMIT 0,10"); 
while($result=mysql_fetch_row($sql)) 
print '<a href=viewtopic.php?t='.$result[0].' >'.$result[1].'</a><br>'; 
?>

Comment limiter le nombre de caractères ?

J'ai essayé de faire une bidouile avec l'autre script, sans succès.

Une idée ?
 
WRInaute passionné
Hummm...

Euh, en faite, ce script permet d'afficher les 10 derniers message du forum, mais j'aimerais justement ajouter la requête pour limiter le titre affiché à 20 caractère, par exemple.

Mais aucune idée de la façon dont procéder.
 
Olivier Duffez (admin)
Membre du personnel
essaye en remplaçant
Code:
$result[1]
par
Code:
substr($result[1], 0, 20)
par contre le pb est que tu cherches dans la table des messages alors qu'il faut chercher dans la table des discussions (phpbb_topics)
 
WRInaute passionné
Pfffff... Quel tanche....

C'est bien ce que j'utilisais, mais pas comme il faut... Je me compliquais la vie.

Merci ;-)


WebRankInfo a dit:
par contre le pb est que tu cherches dans la table des messages alors qu'il faut chercher dans la table des discussions (phpbb_topics)

Ah me*de...

Bon, vais y remédier.
 
WRInaute passionné
...

Mince...

Marche pas avec la table phpbb_topics

Code:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/local/apache/htdocs/sites/x/xxx/index.php on line 101

V'la le code

Edit:

C'est bon tout fonctionne.... erreur de frappe
 
Nouveau WRInaute
MagicManu a dit:
Celui de ma page d'accueil :

Je l'ai trouvé sur le forum phpBB et je l'ai modifié pour le mettre sous forme d'un tableau avec la date (le format peut être changé), le titre (limité aux 25 premiers caractères) et le posteur.

Code:
<?php
$sql = "SELECT t.topic_id, t.topic_title, t.topic_replies, t.topic_last_post_id, f.forum_id, f.forum_name, p.post_time, u.user_id, u.username
       FROM phpbb_topics AS t, phpbb_forums AS f, phpbb_posts AS p, phpbb_users AS u
       WHERE t.forum_id = f.forum_id
       AND f.auth_view < 3 AND f.auth_read < 3      
       AND t.topic_moved_id = 0
       AND p.post_id = t.topic_last_post_id
       AND u.user_id = p.poster_id
	   AND f.forum_id != 8
       ORDER BY t.topic_last_post_id DESC
       LIMIT 10";
if( !($result = mysql_query($sql)) )
{
   echo 'Impossible d\'obtenir les 10 derniers posts.';
}

while( $ary = mysql_fetch_array($result) )
{
   $xpostrow[] = $ary;
}

echo '<table border="0" width="100%">';
for( $i = 0; $i < count($xpostrow); $i++ )
{    
   $topic_title = htmlspecialchars(stripslashes($xpostrow[$i]['topic_title']));
   if( strlen($topic_title) > 25 )
   {
      $k = substr($topic_title, 0, 25);
      $pos = strrpos($k, " ");
      $k = substr($k, 0, $pos);
      $topic_title = $k . "...";
   }
   echo '<tr><td width="12%" class="news">' . date('G\Hi', $xpostrow[$i]['post_time']) . '</td>';   
   echo '<td width="53%" class="news"><a href="forums/viewtopic.php?p=' . $xpostrow[$i]['topic_last_post_id'] . '#' . $xpostrow[$i]['topic_last_post_id'] . '">' . $topic_title . '</a></td>';
   echo '<td width="35%" class="news">par <a href="forums/profile.php?mode=viewprofile&amp;u=' . $xpostrow[$i]['user_id'] . '">' . $xpostrow[$i]['username'] . '</a></td></tr>';
}
echo '</table>';
?>

J'ai un forum privé ( N°8 ) d'où le "AND f.forum_id != 8" :wink:

Merci pr la requete, c'est niquel !=)
 
WRInaute discret
Voila le mien fonctionne presque :

Code:
<?php
$connection=mysql_connect("xxx","xxx","xxx");
mysql_select_db("xxx");
$sql=mysql_query("SELECT topic_id, topic_title FROM phpbb_topics WHERE topic_status = 0 ORDER BY topic_time DESC LIMIT 10");
while($result=mysql_fetch_row($sql))
print '<a href=/forum/viewtopic.php?t='.$result[0].' ><img src="../templates/temp/img/a.gif" border=0> &nbsp;'.$result[1].'</a><br>';
?>

En effet il y a un problème car ce script ne s'actualise pas, il m'a bien afficher les 10 derniers posts mais quand un nouveau post se crée, l'affichage ne change pas. Comment resoudre le probleme ?
 
WRInaute passionné
ton script trie par date de création du sujet.
Il faut trier par date du dernier message dans le sujet :wink:
 
WRInaute passionné
à mon avis, dans la table phpbb_topics, il doit y avoir un champ du genre topic_last_post_time, ou alors, un topic_last_post qui te permettra de retrouver le message correspondant et d'utiliser son post_time.
 
WRInaute impliqué
J'étais persuadé d'avoir réagi sur ce vieu post mais visiblement non.
Il y a un mod qui s'appelle TopicsAnywhere qui permet entre autre de générer un flux rss avec les x derniers messages répondant à plein de critères.
Après y'a plus qu'à parser le RSS (genre avec MagPieRSS)
 
WRInaute discret
TopicsAnywhere ne fonctionne pas chez moi, le formulaire est bon mais quand je valide le script n'affiche rien !
 
Nouveau WRInaute
Merci d'avance ....

J'ai testé le code il fonctionne super bien, j'aimerais savoir comment faire pour obtenir plus d'infos, en fait j'aimerais pouvoir faire ce qu'il est possible de faire avec "forumactif", exemple du format que j'aimerais pouvoir mettre en place:

Titre du post
La date du post - l'heure du post par pseudo du posteur
Début du post ( 2 ou 3 phrases ) ...
[Lecture complète ( le lien pour la lecture complète) ]
Commentaires: 1 :: voir les commentaires (Poster un commentaire)

Voila je sais pas si c'est compliqué à mettre en place, merci d'avance si vous avez le code pour faire cela.

Cordialement,

Stéphane
 
WRInaute occasionnel
Il existe un mod avec ce genre d'options : "topics anywhere".

Par contre, les liens sont affichés avec un script JavaScript...
 
WRInaute discret
Merci pour ce script qui marche impeccablement sur mon site http://www.soninkara.org. C'est vrai que topic anywhere permet d'exporter du flus RSS qu'il suffit de parser, mais je préfère ce scripts très léger et configurable.
Merci à tous.
Code:
<?php
$connection=mysql_connect("localhost","userr_database","mot_de_passe");
mysql_select_db("database");
$sql = "SELECT t.topic_id, t.topic_title, t.topic_replies, t.topic_last_post_id, f.forum_id, f.forum_name, p.post_time, u.user_id, u.username
       FROM phpbb_topics AS t, phpbb_forums AS f, phpbb_posts AS p, phpbb_users AS u
       WHERE t.forum_id = f.forum_id
       AND f.auth_view < 3 AND f.auth_read < 3     
       AND t.topic_moved_id = 0
       AND p.post_id = t.topic_last_post_id
       AND u.user_id = p.poster_id
      AND f.forum_id != 8
       ORDER BY t.topic_last_post_id DESC
       LIMIT 10";
if( !($result = mysql_query($sql)) )
{
   echo 'Impossible d\'obtenir les 10 derniers posts sur le forum soninké de soninkara.';
}

while( $ary = mysql_fetch_array($result) )
{
   $xpostrow[] = $ary;
}

echo '<table border="0" width="100%">';
for( $i = 0; $i < count($xpostrow); $i++ )
{   
   $topic_title = htmlspecialchars(stripslashes($xpostrow[$i]['topic_title']));
   if( strlen($topic_title) > 40 )
   {
      $k = substr($topic_title, 0, 40);
      $pos = strrpos($k, " ");
      $k = substr($k, 0, $pos);
      $topic_title = $k . "...";
   }
   echo '<tr><td width="15%">' . date('d-m-Y', $xpostrow[$i]['post_time']) . '</td>';   
   echo '<td width="60%"><a class="navigation" href="forum/viewtopic.php?p=' . $xpostrow[$i]['topic_last_post_id'] . '#' . $xpostrow[$i]['topic_last_post_id'] . '">' . $topic_title . '</a></td>';
   echo '<td width="3%">Par</td>';
   echo '<td width="22%" align="right"><a class="navigation2" href="forum/profile.php?mode=viewprofile&amp;u=' . $xpostrow[$i]['user_id'] . '">' . $xpostrow[$i]['username'] . '</a></td></tr>';
}
echo '</table>';
?>
 
Nouveau WRInaute
Salut à tous,

j'ai un soucy, après avoir mis ce script sur ma page, cela m'affiche qu'il est impossible d'afficher les 10 derniers messages en me ramenant à la ligne:

Code:
while( $ary = mysql_fetch_array($result) )

d'où peut venir le problème?

Merci d'avance
 
WRInaute passionné
Bonsoir,

quelle serait la requête à effectuer pour afficher les derniers sujets mis à jour ?

C'est-à-dire afficher l'url du sujet et non du dernier post, comme sur la home de WRI ?

Merci
 
WRInaute passionné
La requete est la meme, mais au lieu de faire des liens en utilisant le last_post_id tu crées des liens en utilisant le topic_id.
 
WRInaute passionné
Oui en fait c'est ce que j'avais déjà fait, mais ça n'affichait que les derniers sujets créés.

En rajoutant le topic_last_post_id, ça fonctionne bien, merci !
 
WRInaute occasionnel
Elles sont bien belles vos requêtes, mais vous avez un peu oublié la chose la plus importante : METTRE EN CACHE LE RESULTAT.

Parceque le jour ou vous aurez des messages dans vos forums (imaginez un site comme WRI...) et ben vous allez comprendre votre malheur...
Votre serveur ne resistera pas à une requète si gourmande en ressource avec des ORDER BY et des jointures partout.

voila voila...
 
WRInaute passionné
TU trouves que c'est une grosse requête:

Code:
SELECT topic_id, topic_title, last_post_id FROM phpbb_topics
WHERE topic_status = 0 AND forum_id !=14 AND forum_id != 13 AND forum_id != 22
ORDER BY last_post_id DESC LIMIT 20
 
WRInaute occasionnel
lothar a dit:
TU trouves que c'est une grosse requête:

Code:
SELECT topic_id, topic_title, last_post_id FROM phpbb_topics
WHERE topic_status = 0 AND forum_id !=14 AND forum_id != 13 AND forum_id != 22
ORDER BY last_post_id DESC LIMIT 20
OUI !

Parceque le jour ou tu auras 50.000 messages dans ton forum (regarde combien il y en a sur WRI par exemple...) ta requète prendra beaucoup de temps à s'executer.
Tu n'as aucun moyen d'indexer pour une recherche rapide (sur la date du dernier message j'entends)
Donc SQL va passer en revue tes 50.000 entrées sans exeption, faire tes jointures (heureusement basés sur des clés primaires), et les trier avec un ORDER BY...

Si tu trouves que ca s'appèle une requête simple, faut revoir ton SQL..

Bien sûr il y a plus compliqué.... (GROUP BY et compagnie) mais c'est déja bien assez.
 
WRInaute passionné
easyzik a dit:
lothar a dit:
TU trouves que c'est une grosse requête:

Code:
SELECT topic_id, topic_title, last_post_id FROM phpbb_topics
WHERE topic_status = 0 AND forum_id !=14 AND forum_id != 13 AND forum_id != 22
ORDER BY last_post_id DESC LIMIT 20
OUI !

Parceque le jour ou tu auras 50.000 messages dans ton forum (regarde combien il y en a sur WRI par exemple...) ta requète prendra beaucoup de temps à s'executer.
Tu n'as aucun moyen d'indexer pour une recherche rapide (sur la date du dernier message j'entends)
Donc SQL va passer en revue tes 50.000 entrées sans exeption, faire tes jointures (heureusement basés sur des clés primaires), et les trier avec un ORDER BY...

Si tu trouves que ca s'appèle une requête simple, faut revoir ton SQL..

Bien sûr il y a plus compliqué.... (GROUP BY et compagnie) mais c'est déja bien assez.

Je n'ai aucune connaissance en SQL, c'est une question que je posais. En l'occurrence il y a plus de 100 000 messages sur mon forum.

Comment faire pour améliorer cette requête et stocker le résultat en cache ?
 
Nouveau WRInaute
Comment afficher les titres + text des derniers post ?

J'ai testé le script ci dessous mail il n'affiche que les titres du post ... Comment faire pour afficher également les premieres lignes du post ???

<?php
$connection=mysql_connect("**","**","**");
mysql_select_db("credit_online");
$sql = "SELECT t.topic_id, t.topic_title, t.topic_replies, t.topic_last_post_id, f.forum_id, f.forum_name, p.post_time, u.user_id, u.username
FROM phpbb_topics AS t, phpbb_forums AS f, phpbb_posts AS p, phpbb_users AS u
WHERE t.forum_id = f.forum_id
AND f.auth_view < 3 AND f.auth_read < 3
AND t.topic_moved_id = 0
AND p.post_id = t.topic_last_post_id
AND u.user_id = p.poster_id
AND f.forum_id != 8
ORDER BY t.topic_last_post_id DESC
LIMIT 4";
if( !($result = mysql_query($sql)) )
{
echo 'Impossible d\'obtenir les 10 derniers posts sur le forum crédit-online';
}

while( $ary = mysql_fetch_array($result) )
{
$xpostrow[] = $ary;
}

echo '<table border="0" width="100%">';
for( $i = 0; $i < count($xpostrow); $i++ )
{
$topic_title = htmlspecialchars(stripslashes($xpostrow[$i]['topic_title']));
if( strlen($topic_title) > 100 )
{
$k = substr($topic_title, 0, 100);
$pos = strrpos($k, " ");
$k = substr($k, 0, $pos);
$topic_title = $k . "...";
}
echo '<tr><td width="15%">' . date('d-m-Y', $xpostrow[$i]['post_time']) . '</td>';
echo '<td width="85%"><a href="forum/viewtopic.php?p=' . $xpostrow[$i]['topic_id'] . '#' . $xpostrow[$i]['topic_id'] . '">' . $topic_title . '</a></td></tr>';

}
echo '</table>';
?>
 
Nouveau WRInaute
Bonjour !

Je suis sur la nouvelle version PHPBB3. J'ai un problème avec le script ci-dessous :
Code:
    <?php
    $connection=mysql_connect("localhost","userr_database","mot_de_passe");
    mysql_select_db("database");
    $sql = "SELECT t.topic_id, t.topic_title, t.topic_replies, t.topic_last_post_id, f.forum_id, f.forum_name, p.post_time, u.user_id, u.username
           FROM phpbb_topics AS t, phpbb_forums AS f, phpbb_posts AS p, phpbb_users AS u
           WHERE t.forum_id = f.forum_id
           AND f.auth_view < 3 AND f.auth_read < 3     
           AND t.topic_moved_id = 0
           AND p.post_id = t.topic_last_post_id
           AND u.user_id = p.poster_id
          AND f.forum_id != 8
           ORDER BY t.topic_last_post_id DESC
           LIMIT 10";
    if( !($result = mysql_query($sql)) )
    {
       echo 'Impossible d\'obtenir les 10 derniers posts sur le forum.';
    }

    while( $ary = mysql_fetch_array($result) )
    {
       $xpostrow[] = $ary;
    }

    echo '<table border="0" width="100%">';
    for( $i = 0; $i < count($xpostrow); $i++ )
    {   
       $topic_title = htmlspecialchars(stripslashes($xpostrow[$i]['topic_title']));
       if( strlen($topic_title) > 40 )
       {
          $k = substr($topic_title, 0, 40);
          $pos = strrpos($k, " ");
          $k = substr($k, 0, $pos);
          $topic_title = $k . "...";
       }
       echo '<tr><td width="15%">' . date('d-m-Y', $xpostrow[$i]['post_time']) . '</td>';   
       echo '<td width="60%"><a class="navigation" href="forum/viewtopic.php?p=' . $xpostrow[$i]['topic_last_post_id'] . '#' . $xpostrow[$i]['topic_last_post_id'] . '">' . $topic_title . '</a></td>';
       echo '<td width="3%">Par</td>';
       echo '<td width="22%" align="right"><a class="navigation2" href="forum/profile.php?mode=viewprofile&amp;u=' . $xpostrow[$i]['user_id'] . '">' . $xpostrow[$i]['username'] . '</a></td></tr>';
    }
    echo '</table>';
    ?>

En effet, j'ai toujours l'erreur
Code:
Impossible d'obtenir les 10 derniers posts sur le forum.
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/www/b0fee69f9538a80d8f7b5e0f8b2c7bf9/web/news.php on line 27
Unknown column 'f.auth_view' in 'where clause'

Quelqu'un peu m'aider ?

Merci d'avance.
 
Nouveau WRInaute
Salut j'ai installé phpbbseo sur mon forum et je ne sais pas comment modifier le code suivant pour que cela marche, une idée?
Code:
<?php 
$connection=mysql_connect("xxx","xxx","xxx");
mysql_select_db("xxx");
$sql=mysql_query("SELECT post_id,post_subject FROM phpbb_posts_text WHERE post_subject !='' ORDER BY post_id DESC LIMIT 0,10");
while($result=mysql_fetch_row($sql))
print '<a href=viewtopic.php?t='.$result[0].' >'.$result[1].'</a><br>';
?>

le htaccess :
Code:
RewriteRule ^forum-stars-nues/annonces/(topic|[a-z0-9_-]*-t)([0-9]+)(-([0-9]+))?\.html$ /forum-stars-nues/viewtopic.php?t=$2&start=$4 [QSA,L,NC]
# TOPIC WITHOUT FORUM ID & DELIM ALL MODES
RewriteRule ^forum-stars-nues/([a-z0-9_-]*)/?(topic|[a-z0-9_-]*-t)([0-9]+)(-([0-9]+))?\.html$ /forum-stars-nues/viewtopic.php?forum_uri=$1&t=$3&start=$5 [QSA,L,NC]
 
Discussions similaires
Haut