Afficher quelques phrases des dix dernier sujet sur ma page

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

wythi
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 140
Inscription: Mar Sep 20, 2005 23:27

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 accro
WRInaute accro
 
Messages: 1874
Inscription: Dim Déc 17, 2006 21:08

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 occasionnel
WRInaute occasionnel
 
Messages: 140
Inscription: Mar Sep 20, 2005 23:27

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 passionné
WRInaute passionné
 
Messages: 648
Inscription: Ven Juil 29, 2005 14:25

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 occasionnel
WRInaute occasionnel
 
Messages: 140
Inscription: Mar Sep 20, 2005 23:27

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 occasionnel
WRInaute occasionnel
 
Messages: 140
Inscription: Mar Sep 20, 2005 23:27

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 passionné
WRInaute passionné
 
Messages: 712
Inscription: Mer Mai 30, 2007 0:21

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 occasionnel
WRInaute occasionnel
 
Messages: 140
Inscription: Mar Sep 20, 2005 23:27

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 passionné
WRInaute passionné
 
Messages: 712
Inscription: Mer Mai 30, 2007 0:21

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

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

wythi
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 140
Inscription: Mar Sep 20, 2005 23:27

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 passionné
WRInaute passionné
 
Messages: 712
Inscription: Mer Mai 30, 2007 0:21

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 occasionnel
WRInaute occasionnel
 
Messages: 140
Inscription: Mar Sep 20, 2005 23:27

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 passionné
WRInaute passionné
 
Messages: 648
Inscription: Ven Juil 29, 2005 14:25

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 passionné
WRInaute passionné
 
Messages: 712
Inscription: Mer Mai 30, 2007 0:21

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 passionné
WRInaute passionné
 
Messages: 648
Inscription: Ven Juil 29, 2005 14:25

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

Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

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