Problème lors de la création d'un forum php

Fermé
Garoln Messages postés 2 Date d'inscription samedi 25 décembre 2010 Statut Membre Dernière intervention 26 décembre 2010 - 25 déc. 2010 à 10:49
Garoln Messages postés 2 Date d'inscription samedi 25 décembre 2010 Statut Membre Dernière intervention 26 décembre 2010 - 26 déc. 2010 à 14:34
Bonjour à tous,
Je m'appelle David et j'ai besoin de pistes et d'aides pour comprendre comment résoudre le problème que j'ai depuis plusieurs jours. J'ai trouvé un tuto sur le site du zéro pour créer son propre forum à l'aide du php (très bon exercice), cependant je bloque sur la mise en place d'un tableau dans ma page index.

J'essaie d'insérer un skin parchemin, fragmenté en plusieurs parties, dans la boucle php qui me permet d'afficher mes différents forum et catégories. Seulement je n'y arrive pas. J'aimerai avoir un parchemin par catégorie et forum de la dite catégorie. A chaque fois que j'essaie de placer la dernière partie de mon parchemin, celui-ci s'insère à la fin de chaque ligne <tr> et non à la fin de mes forums et catégories....

Pas très clair ce que je tente d'expliquer ? Le plus simple est de vous montrer une image :

https://www.imagup.com/data-recovery-solutions-for-small-businesses-of-san-francisco/


et voici mon code de la page index
<?php

	//Cette fonction doit être appelée avant tout code html
	session_start();

	//On donne ensuite un titre à la page, puis on appelle notre fichier debut.php
	$titre = "Index du forum";
	include("includes/identifiants.php");
	include("includes/debut.php");
	include("includes/menu.php");
	
	//Outils de navigation
	echo'<i>Vous êtes ici : </i><a href ="./index.php">Index du forum</a>';

	//Initialisation de deux variables
	$totaldesmessages = 0;
	$categorie = NULL;
	
	//Cette requete permet d'obtenir tout sur le forum et de lier un forum à une catégorie, etc...
	$query=$db->prepare('SELECT cat_id, cat_nom, 
	forum_forum.forum_id, forum_name, forum_desc, forum_post, forum_topic, auth_view, forum_topic.topic_id,  forum_topic.topic_post, post_id, post_time, post_createur, membre_pseudo, 
	membre_id 
	FROM forum_categorie
	LEFT JOIN forum_forum ON forum_categorie.cat_id = forum_forum.forum_cat_id
	LEFT JOIN forum_post ON forum_post.post_id = forum_forum.forum_last_post_id
	LEFT JOIN forum_topic ON forum_topic.topic_id = forum_post.topic_id
	LEFT JOIN forum_membres ON forum_membres.membre_id = forum_post.post_createur
	WHERE auth_view <= :lvl 
	ORDER BY cat_ordre, forum_ordre DESC');
	$query->bindValue(':lvl',$lvl,PDO::PARAM_INT);
	$query->execute();
?>	
	<table class="parchemin">
		<tr>
			<td class="parch_haut"><br /></td>
		</tr>
			<td class="parch_milieu">
	
	

<?php
		//Début de la boucle
		while($data = $query->fetch())
		{
   		 	//On affiche chaque catégorie
   		 	if( $categorie != $data['cat_id'] )
   			{
        		//Si c'est une nouvelle catégorie on l'affiche
       
        		$categorie = $data['cat_id'];
?>
	
    <table class="forum" ><tr><tr class="categorie_haut" cellpadding="0" cellspacing="0">
        			<th></th>
        			<th><strong><?php echo stripslashes(htmlspecialchars($data['cat_nom'])); ?>
        			</strong></th>             
        			<th border="0" cellpadding="0" cellspacing="0"><strong>Sujets</strong></th>       
        			<th border="0" cellpadding="0" cellspacing="0"><strong>Messages</strong></th>       
        			<th border="0" cellpadding="0" cellspacing="0"><strong>Dernier message</strong></th>   
      				</tr>
      				
     			
  
<?php               
    		}

    		//Ici, on met le contenu de chaque catégorie
    		// Ce super echo de la mort affiche tous
    		// les forums en détail : description, nombre de réponses etc...

    		echo'<tr class="categorie_milieu"><td><img src="./images/message.gif" alt="message" /></td>
    		<td><strong>
    		<a href="./voirforum.php?f='.$data['forum_id'].'">
    		'.stripslashes(htmlspecialchars($data['forum_name'])).'</a></strong>
    		<br />'.nl2br(stripslashes(htmlspecialchars($data['forum_desc']))).'</td>
    		<td>'.$data['forum_topic'].'</td>
    		<td>'.$data['forum_post'].'</td>';

    		// Deux cas possibles :
   			// Soit il y a un nouveau message, soit le forum est vide
    		if (!empty($data['forum_post']))
   			{
         		//Selection dernier message
	 			$nombreDeMessagesParPage = 15;
         		$nbr_post = $data['topic_post'] +1;
	 			$page = ceil($nbr_post / $nombreDeMessagesParPage);
		 
         		echo'<td>
         		'.date('H\hi \l\e d/M/Y',$data['post_time']).'<br />
         		<a href="./voirprofil.php?m='.stripslashes(htmlspecialchars($data['membre_id'])).'&amp;action=consulter">'.$data['membre_pseudo'].'  </a>
         		<a href="./voirtopic.php?t='.$data['topic_id'].'&amp;page='.$page.'#p_'.$data['post_id'].'">
         		<img src="./images/go.gif" alt="go" /></a></td></tr>';

     		}
     		else
     		{
         		echo'<td>Pas de message</td></tr>';
     		}
     
     		//Cette variable stock le nombre de message, on la met à jour
     		$totaldesmessages += $data['forum_post'];  
     		//On ferme notre boucle et nos balises
  
		} //fin de la boucle
	
		$query->CloseCursor();
		echo '</table >';

		//Le pied de page ici :
		echo'<div id="footer"><h2>Qui est en ligne ?</h2>';

		//On compte les membres
		$TotalDesMembres = $db->query('SELECT COUNT(*) FROM forum_membres')->fetchColumn();
		$query->CloseCursor();	
		$query = $db->query('SELECT membre_pseudo, membre_id FROM forum_membres ORDER BY membre_id DESC LIMIT 0, 1');
		$data = $query->fetch();
		$derniermembre = stripslashes(htmlspecialchars($data['membre_pseudo']));

		echo'<p>Le total des messages du forum est <strong>'.$totaldesmessages.'</strong>.<br />';
		echo'Le site et le forum comptent <strong>'.$TotalDesMembres.'</strong> membres.<br />';
		echo'Le dernier membre est <a href="./voirprofil.php?m='.$data['membre_id'].'&amp;action=consulter">'.$derniermembre.'</a>.</p>';
		$query->CloseCursor();
?>
		</td>
	</tr>
			<td  border="0" cellpadding="0" cellspacing="0" class="parch_bas"><br /></td>
	</table>
</body>
</html>


et voici le code de ma page css
body
{
	background-image: url('..//images/Fond_site.png');
	background-attachment : fixed ;
	
}

#banniere
{
	width: 399px;
	height: 125px;
	background-position:  center;
	margin-bottom: 20px; 
	background-image: url('../images/logo_V3.png');
}

/*configuration du tableau du forum */
table.forum
{
	margin-top: 0px;
	margin-left: 25px;
	margin-right: 0px;
	margin-bottom: 0px;
	width: 1053px;
	border-collapse: collapse;
	
	
	

}

table.cat
{
	
	border-style: ;
	
}

.categorie_haut
{
	
	border-style: none;
	background: url('../images/categorie_haut.png') no-repeat bottom left;
	height: 41px; 
	text-align: left;
	vertical-align: middle;
	font-variant: small-caps;
	border-collapse: collapse;
}

.categorie_milieu
{
	
	border-style: hidden;
	background: url('../images/categorie_milieu.png')  top left;
	text-align: left;
	vertical-align: middle;
	border-collapse: collapse;
}

.categorie_bas
{
	
	border-style: hidden;
	background: url('../images/categorie_bas.png')  no-repeat bottom left;
	height: 41px; 
	text-align: left;
	vertical-align: middle;
	font-variant: small-caps;
	border-collapse: collapse;
}

tr.color_forum
{
	border-collapse: collapse;
	border-collapse: collapse;
	border-style: none;
	
}

.gtf
{
	border-collapse: collapse;	
	border-collapse: collapse;
	border-style: none;
	background: url('../images/gtf.png') repeat-y left center ;
	width: 3 px;
}

.sujet
{
	border-collapse: collapse;	
	border-collapse: collapse;
	border-style: none;
	background: url('../images/dtf.png') repeat-y left center ;
	background-color: #d2bb9f;
	width: 100px;
	moz-opacity: 0.6;
	opacity: 0.6; 
	filter: alpha(opacity=60);
	text-align: center;

}

.sms
{
	border-collapse: collapse;	
	border-collapse: collapse;
	border-style: none;
	background: url('../images/dtf.png') repeat-y right center ;
	background-color: #ebe5cd;
	width:100px;

	text-align: center;
}
.dernier_sms
{
	border-collapse: collapse;	
	border-collapse: collapse;
	border-style: none;
	background: url('../images/dtf.png') repeat-y right center ;
	width: 300px;
	background-color: #e8dbb1;
}

.htf
{
	border-collapse: collapse;	
	border-collapse: collapse;
	border-style: none;
	background: url('../images/htf.png') top center ;
	height:1 px;
	
}

.btf
{
	border-collapse: collapse;	
	border-collapse: collapse;
	border-style: 10px;
	 border-radius: 10px; 
	background: url('../images/btf.png') bottom	 center ;
	height: 3px;
	 
}

/*Configuration du fond en parchemin*/
table.parchemin
{
	border-collapse: collapse;
	border-style: none;
	float: right;
	
}
td.parch_haut
{
	background: url('../images/parch_haut.png') no-repeat bottom center ;
	border-collapse: collapse;
	border-style: none;
	width: 1100px;
	height: 37px;
	float: left;
}

td.parch_milieu
{
	background: url('../images/parch_milieu.png') repeat  top center;
	border-collapse: collapse;
	border-style: none;
	width: 1100px;
	float: left;
}
td.parch_bas
{
	background: url('../images/parch_bas.png') no-repeat top center ;
	border-collapse: collapse;
	border-style: none;
	width: 1100px;
	height: 37px;
	float: left;
}

#footer
{
border: 1px solid black;
width: 90%;
margin-top: 50px;
margin-left: 5%;
margin-bottom: 10Opx;
padding: 5px;
background-color: rgb(237,224,213);
}


Bref,je pense que c'est plus clair ainsi à présent... Est-ce que quelqu'un a une piste ou une réponse à me transmettre ?

Dans tous les cas joyeux Noël à tout le monde, et bonne fin de week-end.


A voir également:

1 réponse

Garoln Messages postés 2 Date d'inscription samedi 25 décembre 2010 Statut Membre Dernière intervention 26 décembre 2010
26 déc. 2010 à 14:34
Ok affaire conclue... J'ai trouvé de l'aide sur le forum du site du zéro....
Bonne année à chacun
0