Afficher quelques phrases des dix dernier sujet sur ma page

wythi
WRInaute discret
WRInaute discret
 
Messages: 140
Inscription: 20 Sep 2005

Afficher quelques phrases des dix dernier sujet sur ma page

Message le Sam Déc 01, 2007 18:21

Bonjours a tous...
voila, j'ai trouvé sur ce site les requetes qu'il me falais pour afficher les 10 derniers sujet de mon forum, sa fonctionne bien...

Mais j'aimerais que sa affiche également quelques phrase du premier message.

voici mon code :
Code: Tout sélectionner
<?php
require_once($dbhost . "config.php");
$dbh = mysql_connect($dbhost, $dbuser, $dbpasswd);
$db_name = mysql_select_db($dbname);

$sql = "SELECT `topic_id`, `topic_title`,`forum_id`,`topic_time`
   FROM `phpbb3_topics`
   WHERE forum_id='1' AND forum_id != '8'
   ORDER BY `topic_id` DESC
   LIMIT 0,10";

$r_topics = mysql_query($sql) or die(mysql_error());
while ($aff_forums = mysql_fetch_array($r_topics)) {
$id = $aff_forums['topic_id'];
$f_id = $aff_forums['forum_id'];
$title = $aff_forums['topic_title'];
$time = $aff_forums['topic_time'];
$time = date("d/m/y", $time);
echo "
<TR>
<TD><center class=Style1 >" . $time . "</center></TD>
<TD><center class=Style1 ><div align=left><a href=\"http://www.psychologie-entre-aide.com/forum/viewtopic.php?t=" . $id . "\">" . $title . "</a><br /></div></center></TD>
</TR>";
}
mysql_close($dbh);


Je précise que je suis sous phpbb3

Et donc pour mieux expliquer, j'aimerais que sa affiche en dessous du lien un apperçus du premier message du sujet.

Pouriez-vous m'aider ?

Je précise que je suis nule en php :)

Grand merci d'avance, wythi.

Ma page d'accueil ici.

Merci.


webmasterlamogere
WRInaute passionné
WRInaute passionné
 
Messages: 1874
Inscription: 17 Déc 2006

Message le Sam Déc 01, 2007 20:00

si tu affiches les dix derniers en triant les enregistrements en DESCendant, tu peux afficher le premier en triant en ASCendant :
Code: Tout sélectionner
$sql = "SELECT `topic_id`, `topic_title`,`forum_id`,`topic_time`
   FROM `phpbb3_topics`
   WHERE forum_id='1' AND forum_id != '8'
   ORDER BY `topic_id` ASC
   LIMIT 0,1";

wythi
WRInaute discret
WRInaute discret
 
Messages: 140
Inscription: 20 Sep 2005

Message le Sam Déc 01, 2007 20:10

Je pence qu'on ne sais pas compris

en faite avec ces requetes, sa m'affiche juste le titre du sujet sous forme de lien, comme si on entre dans le forum, et qu'on a la liste des sujets mais j'aimerais que sa affiche par exemple :

"ici le titre du sujet sous forme de lien"
"et ici, le premier message de ce même sujet"

Histoir que sur ma page d'accueil, il y ai un apperçus du sujet afficher fin je ne sais pas si je m'explique bien.

wythi.

code
WRInaute impliqué
WRInaute impliqué
 
Messages: 648
Inscription: 29 Juil 2005

Message le Dim Déc 02, 2007 11:21

bonjour, tu fais une requete de ce style

Code: Tout sélectionner
$rq="SELECT post_text FROM phpbb3_posts WHERE topic_id = '$id' ORDER BY post_id ASC LIMIT 0,1";


pour récupérer le texte du premier sujet du topic

Après si tu ne veux afficher que le début du texte, il te suffit de limiter le champ avec quelque chose dans ce style :

$text = substr ("$text", 0,200); >> pour avoir seulement les 200 premiers caractères par exemple

wythi
WRInaute discret
WRInaute discret
 
Messages: 140
Inscription: 20 Sep 2005

Message le Dim Déc 02, 2007 13:08

Bonjour,
Merci de vos réponsses, je teste sa, et revien vous dir si sa marche ;)

Merci beaucoup ! ;)
wythi.

wythi
WRInaute discret
WRInaute discret
 
Messages: 140
Inscription: 20 Sep 2005

Message le Dim Déc 02, 2007 14:20

Re bonjours,

j'ai une erreur, voici mon code :

Code: Tout sélectionner
require_once($dbhost . "config.php");
$dbh = mysql_connect($dbhost, $dbuser, $dbpasswd);
$db_name = mysql_select_db($dbname);

$sql = "SELECT `topic_id`, `topic_title`,`forum_id`,`topic_time`
   FROM `phpbb3_topics`
   WHERE forum_id='21' AND forum_id != '8'
   ORDER BY `topic_id` DESC
   LIMIT 0,5";

$sql = "SELECT post_text FROM phpbb3_posts WHERE topic_id = '$id' ORDER BY post_id ASC LIMIT 0,1";

$r_topics = mysql_query($sql) or die(mysql_error());
while ($aff_forums = mysql_fetch_array($r_topics)) {
$id = $aff_forums['topic_id'];
$f_id = $aff_forums['forum_id'];
$title = $aff_forums['topic_title'];
$time = $aff_forums['topic_time'];
$time = date("d/m/y", $time);

$r_post = mysql_query($sql) or die(mysql_error());
while ($aff_forums = mysql_fetch_array($r_post)) {
$text = aff_forums['posts_text'];
$text = substr ("$text", 0,200);
echo "
<TR>
<TD><center class=Style1 >" . $time . "</center></TD>
<TD><center class=Style1 ><div align=left><a href=\"http://www.psychologie-entre-aide.com/forum/viewtopic.php?t=" . $id . "\">" . $title . "</a><br /></div></center></TD>
<td>" . $text . "</td>
</TR>";
}
}
mysql_close($dbh);


Voici l'erreur que sa m'affiche :
Parse error: syntax error, unexpected '[' in /home/www/wythi82/www/index.php on line 129


Je vous l'ai dis :lol: je suis null en "php" :)

Pouvez-vous m'expliquer ou est mon erreur ?
Merci.


Djoule_logo
WRInaute impliqué
WRInaute impliqué
 
Messages: 718
Inscription: 30 Mai 2007

Message le Dim Déc 02, 2007 15:12

Pour nous aider, il faudrait que tu nous indique ou est la ligne 129 dan ton code. On ne la vois pa nous ici ;)

wythi
WRInaute discret
WRInaute discret
 
Messages: 140
Inscription: 20 Sep 2005

Message le Dim Déc 02, 2007 15:14

Djoule_logo a écrit:Pour nous aider, il faudrait que tu nous indique ou est la ligne 129 dan ton code. On ne la vois pa nous ici ;)

Oups, oui juste pardon
Code: Tout sélectionner
$text = aff_forums['posts_text'];


:)


Djoule_logo
WRInaute impliqué
WRInaute impliqué
 
Messages: 718
Inscription: 30 Mai 2007

Message le Dim Déc 02, 2007 15:28

essayes tout simplement avec ça
$text = $aff_forums['posts_text'];

wythi
WRInaute discret
WRInaute discret
 
Messages: 140
Inscription: 20 Sep 2005

Message le Dim Déc 02, 2007 15:41

Djoule_logo a écrit:essayes tout simplement avec ça
$text = $aff_forums['posts_text'];


Re, j'ai esseyer,
mais sa m'affiche : 01/01/70
forum/viewtopic


Regarde ici :
http://www.psychologie-entre-aide.com

au niveau "les dernières news du forum :"


... pas simple pour moi :)


Djoule_logo
WRInaute impliqué
WRInaute impliqué
 
Messages: 718
Inscription: 30 Mai 2007

Message le Dim Déc 02, 2007 15:48

Déja y'a un truc que je ne comprends pas dans ton code.
Code: Tout sélectionner
$sql = "SELECT `topic_id`, `topic_title`,`forum_id`,`topic_time`
   FROM `phpbb3_topics`
   WHERE forum_id='21' AND forum_id != '8'
   ORDER BY `topic_id` DESC
   LIMIT 0,5";

$sql = "SELECT post_text FROM phpbb3_posts WHERE topic_id = '$id' ORDER BY post_id ASC LIMIT 0,1";

Tu enchaines les 2 directement donc ta variable ne prendra que la 2eme valeur et tes requettes ne travaillerons que sur ta table phpbb3_posts.
Renommes tes variables differement ($sql_topic et $sql_post) par exemple.

wythi
WRInaute discret
WRInaute discret
 
Messages: 140
Inscription: 20 Sep 2005

Message le Dim Déc 02, 2007 15:53

Oui en faite, j'ai recopier le code de plus haut car je n'y connais rien, je t'ai fais le code de ma page en .txt
ici

Je vais esseyer comme tu me dis pour voir :)

code
WRInaute impliqué
WRInaute impliqué
 
Messages: 648
Inscription: 29 Juil 2005

Message le Dim Déc 02, 2007 15:54

C'est normal :

Ce que tu veux c'est :
- afficher les titres des derniers topics de ton forum
- afficher les textes du premier sujet de chaque topic

>> sachant que les topics et les posts sont dans 2 tables différentes, tu dois effectuer 2 requetes différentes, et la deuxième doit figurer dans la boucle de la première
Or actuellement, tu ne récupères rien du tout pour les textes, car ta requete n'est pas dans la boucle... En effet, tu fais une requete en demanadant de sélectionner le texte des posts dont le numéro de topic est égal à la valeur de "$id", valeur que tu ne connais pas encore car tu n'as pas récupéré les résultats.

Bref, en modifiant ton code comme cela, ça devrait marcher :


require_once($dbhost . "config.php");
$dbh = mysql_connect($dbhost, $dbuser, $dbpasswd);
$db_name = mysql_select_db($dbname);

$sql = "SELECT `topic_id`, `topic_title`,`forum_id`,`topic_time`
FROM `phpbb3_topics`
WHERE forum_id='21' AND forum_id != '8'
ORDER BY `topic_id` DESC
LIMIT 0,5";


$r_topics = mysql_query($sql) or die(mysql_error());
while ($aff_forums = mysql_fetch_array($r_topics)) {
$id = $aff_forums['topic_id'];
$f_id = $aff_forums['forum_id'];
$title = $aff_forums['topic_title'];
$time = $aff_forums['topic_time'];
$time = date("d/m/y", $time);

$sql_2 = "SELECT post_text FROM phpbb3_posts WHERE topic_id = '$id' ORDER BY post_id ASC LIMIT 0,1";

$r_post = mysql_query($sql_2) or die(mysql_error());
while ($aff_posts = mysql_fetch_array($r_post)) {
$text = $aff_posts['posts_text'];
$text = substr ("$text", 0,200);
} //on ferme la boucle qui récupère le texte du post
echo "
<TR>
<TD><center class=Style1 >" . $time . "</center></TD>
<TD><center class=Style1 ><div align=left><a href=\"http://www.psychologie-entre-aide.com/forum/viewtopic.php?t=" . $id . "\">" . $title . "</a><br /></div></center></TD>
<td>" . $text . "</td>
</TR>";
}//On ferme la boucle qui récupère le topic
mysql_close($dbh);

edit : tu fais aussi des erreurs en appelant tes requetes de la même façon... chaque requete différente doit porter un nom différent
Dernière édition par code le Dim Déc 02, 2007 15:59, édité 2 fois.


Djoule_logo
WRInaute impliqué
WRInaute impliqué
 
Messages: 718
Inscription: 30 Mai 2007

Message le Dim Déc 02, 2007 15:57

Pas mieux que Code :P

en n'oubliant pas le
$text = $aff_forums['posts_text'];


;)

code
WRInaute impliqué
WRInaute impliqué
 
Messages: 648
Inscription: 29 Juil 2005

Message le Dim Déc 02, 2007 16:00

je viens d'éditer car je n'avais pas vu en plus que tu avais appelé tes requetes de la meme façon pour les topics et pour les posts ce qui ne peut pas marcher

Afficher quelques phrases des dix dernier sujet sur ma page

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :

Consultez la description détaillée des produits ou services de Google suivants : Google Book Search, Gmail Notifier

  • Touch Graph Google Browser
    Description du TouchGraph Google Browser (outil externe) : il s'agit d'un outil graphique permettant de visualiser des sites similaires (selon Google). On peut sauter de site en site, et se rendre compte facilement des communautés de sites, ou des nébuleuses de sites traitant du même sujet.


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités