J'essaie de faire un système de statut/commentaire

Petit nouveau ! | 2 Messages

09 déc. 2011, 18:57

Bonsoir, voilà je suis nouveau sur le forum et donc je sollicite votre aide.

Je réalise actuellement un site pour un RPG sur Harry Potter : http://www.poudlard-express.fr/

Pour ce site j'ai réalisé un système de statut/commentaire un peu à la facebook.

Or je rencontre quelques petits problèmes....

Tout d'abord, au lieu d'avoir :

Statut 1
Commentaire 1.0
Commentaire 1.1
Statut 2
Commentaire 2.0
Commentaire 2.1

J'ai :

Statut 1
Commentaire 1.0
Commentaire 1.1
Commentaire 2.0
Commentaire 2.1
Statut 2
Vide

Ensuite mon deuxième problème est que je ne récupère pas les bons id membre.. C'est à dire que si Joueur X écrit un statut, joueur Y commente ce statut, ça m'affichera "Commentaire de Joueur X" alors que c'est Y qui a commenté....

Je vous donne les codes de mes pages :

statut.php
<?php
include("include.php");
$bdd = bdd();
if(!empty($_SESSION['membre']))
{
	if(!empty($_GET['maison']))
		if(is_numeric($_GET['maison']))
				if($_GET['maison'] <= 4 && $_GET['maison'] >=0)
					$maison = $_GET['maison'];
				else $maison = 0;
		else $maison = 0;
	else $maison = 0;
	
	$requete = $bdd->prepare("SELECT id_maison FROM membre WHERE id_membre=?");
	$requete->execute(array($_SESSION['membre']));
	$membre = $requete->fetch();
	
	if($maison == 0 || $maison == $membre['id_maison'])
	{
		if(!empty($_POST['message']))
		{
			$requete = $bdd->prepare("INSERT INTO statut VALUES('', ?, ?, ?, ?)");
			$requete->execute(array($maison, (int) $_SESSION['membre'], $_POST['message'], time() ));
			$page .= 'Le statut a bien été envoyé !';
		} 


		$page .= '
		<form action="?maison='.$maison.'" method="post">
			<p>
				<label for="message"></label><br />
				<textarea rows="4" cols="50" name="message" id="message">Éditer un statut...</textarea>
				<br/>
				<input type="submit" value="Publier"/>
			</p>
		</form>
		';

		$requete = $bdd->prepare("SELECT id_statut, id_membre, contenu, date FROM statut WHERE id_maison=? ORDER BY id_statut DESC LIMIT 0, 10");
		$requete->execute(array($maison));
		while($statut = $requete->fetch())
		{
			$pseudo = $bdd->query("SELECT prenomPerso, nomPerso FROM membre WHERE id_membre=".$statut['id_membre'])->fetch();
			
			$page .= '
			<fieldset><table>
				<center><tr><td>'.$statut['contenu'].'</td></tr></center>
				<tr><td><p>écrit par '.$pseudo['prenomPerso'].' '.$pseudo['nomPerso'].' le '.date('d/m/Y',$data['date']).' &bull; <a href="commentaire1.php?id='.$statut['id_statut'].'">Commentaires</a></p></td></tr>
			</table></fieldset><br />
			';
			
		}
		if($maison == 0)
			$maison = "Public";
		elseif($maison == 1)
			$maison = "Grifondor";
		elseif($maison == 2)
			$maison = "Pouffsouffle";
		elseif($maison == 3)
			$maison = "Serdaigle";
		elseif($maison == 4)
			$maison = "Serpentard";
			
	 }

}
?>
commentaire.php
<?php
include("include.php");
$bdd = bdd();
if(!empty($_SESSION['membre']))
{
	if(!empty($_GET['maison']))
		if(is_numeric($_GET['maison']))
				if($_GET['maison'] <= 4 && $_GET['maison'] >=0)
					$maison = $_GET['maison'];
				else $maison = 0;
		else $maison = 0;
	else $maison = 0;
	
	$requete = $bdd->prepare("SELECT id_maison FROM membre WHERE id_membre=?");
	$requete->execute(array($_SESSION['membre']));
	$membre = $requete->fetch();
	
	if($maison == 0 || $maison == $membre['id_maison'])
	{
		if(!empty($_POST['message']))
		{
			$requete = $bdd->prepare("INSERT INTO statut VALUES('', ?, ?, ?, ?)");
			$requete->execute(array($maison, (int) $_SESSION['membre'], $_POST['message'], time() ));
			$page .= 'Le statut a bien été envoyé !';
		} 


		$page .= '
		<form action="?maison='.$maison.'" method="post">
			<p>
				<label for="message"></label><br />
				<textarea rows="4" cols="50" name="message" id="message">Éditer un statut...</textarea>
				<br/>
				<input type="submit" value="Publier"/>
			</p>
		</form>
		';

		$requete = $bdd->prepare("SELECT id_statut, id_membre, contenu, date FROM statut WHERE id_maison=? ORDER BY id_statut DESC LIMIT 0, 10");
		$requete->execute(array($maison));
		while($statut = $requete->fetch())
		{
			$pseudo = $bdd->query("SELECT prenomPerso, nomPerso FROM membre WHERE id_membre=".$statut['id_membre'])->fetch();
			
			$page .= '
			<fieldset><table>
				<center><tr><td>'.$statut['contenu'].'</td></tr></center>
				<tr><td><p>écrit par '.$pseudo['prenomPerso'].' '.$pseudo['nomPerso'].' le '.date('d/m/Y',$data['date']).' &bull; <a href="commentaire1.php?id='.$statut['id_statut'].'">Commentaires</a></p></td></tr>
			</table></fieldset><br />
			';
			
		}
		if($maison == 0)
			$maison = "Public";
		elseif($maison == 1)
			$maison = "Grifondor";
		elseif($maison == 2)
			$maison = "Pouffsouffle";
		elseif($maison == 3)
			$maison = "Serdaigle";
		elseif($maison == 4)
			$maison = "Serpentard";
			
	 }

}
?>
Ça serait sympa de m'aider :D

Petit nouveau ! | 2 Messages

09 déc. 2011, 20:16

Un peu d'aide s'il vous plait :oops:

ViPHP
xTG
ViPHP | 7331 Messages

09 déc. 2011, 20:27

Tu sais que les gens ont une vie ? Tu sais que nous répondons bénévolement ici ? Tu sais que c'est un forum et non un chat ?

Du coup, je vais répondre aussi succinctement que sur un chat.
Regardes du côté des jointures SQL pour récupérer les informations en une requête et non en deux.