8792 sujets

Développement web côté serveur, CMS

salut
j'ai un très gros problème Smiley decu dans mon forum ben c'est tres dure a expliquer mais j'essaye.
Ben voila j'ai fait une page qui affiche les message ou le membre a participer le problème c'est dans les boucle je pense que c'est leur emplacement qui fait le problème, voila un screen de mon probleme:

http://img189.imageshack.us/img189/9296/bouclepartiuf4.gif

et voila le code:

<?php
include("header.php");
include("mysqlconect.php");
if(isset($_COOKIE['pseudo']) AND isset($_COOKIE['pass']) AND isset($_GET['id']) AND !empty($_GET['id']))
{
    $pseudo = htmlentities(addslashes($_GET['id']));
    $retoury = mysql_query("SELECT * FROM users WHERE id='" . $pseudo . "'");
    $donney = mysql_fetch_array($retoury);
    $pseudo = $donney['pseudo'];
    ?>
    <title>Tout les messages ou <?php echo $pseudo; ?> a participer</title>
    <br><br>
    <table  border="1" align="center" bgcolor="#FE9F00"><tr>
    <th nowrap="nowrap" id="titre" width="700px"  style="border: 1px solid black;" background="images/fond titre.gif" colspan="2">Sujet</th>
    <th nowrap="nowrap" id="titre" Width="100px" style="border: 1px solid black;" background="images/fond titre.gif">Auteur</th>
    <th nowrap="nowrap" id="titre" Width="100px" style="border: 1px solid black;" background="images/fond titre.gif">Nbr. de rep.</th>
    <?php
    $retour9 = mysql_query("select COUNT(*) FROM forums where type='sujets' AND pseudo='" . $pseudo . "'");
    $donne9 = mysql_result($retour9,0);
    if(empty($donne9))
    {
        ?>
        <tr>
        <td valign="top" id="texte" style="border: 1px solid black;" bgcolor="#FE9F00" colspan="4"><center>
        <?php echo $pseudo; ?> n'a participer dans aucun message
        </center></td></tr>
        <?php
    }
    else
    {
        $retour1 = mysql_query("SELECT * FROM forums WHERE type='parti' AND pseudo='" . $pseudo . "'");
        while($donne1 = mysql_fetch_array($retour1))
        {
            $idf = $donne1['id_f'];
            $retour2 = mysql_query("SELECT * FROM forums WHERE type='surforum' AND id_f='" . $idf . "'");
            $donne2 = mysql_fetch_array($retour2);
        }
        $surforum = $donne2['id_f'];
        $retour3 = mysql_query("select COUNT(*) FROM forums where type='sujets' AND id_f='" . $surforum . "'  AND pseudo='" . $pseudo . "'");
        $donne3 = mysql_result($retour3,0);
        if(!empty($donne3))
        {
            ?>
            <tr>
            <td valign="top" id="texte" style="border: 1px solid black;" background="images/fond titre2.gif"colspan="4"><center><?php echo $donne2['titre'] ; ?></center></td>
            </tr>
            <?php
            $retour4 = mysql_query("SELECT * FROM forums WHERE type='forum' AND id_f='" . $surforum . "'");
            while($donne4 = mysql_fetch_array($retour4))
            {
                $forum = $donne4['id'];
                $retour5 = mysql_query("select COUNT(*) FROM forums where type='sujets'AND id_f='" . $surforum . "' AND pseudo='" . $pseudo . "' AND id='" . $forum . "'");
                $donne5 = mysql_result($retour5,0);
                if(!empty($donne5))
                {
                    ?>
                    <tr>
                    <td valign="top" id="texte" style="border: 1px solid black;"background="images/fond titre3.gif" colspan="4"><center><?php echo $donne4['titre'] ; ?></center></td>
                    </tr>
                    <?php
                    $retour6 = mysql_query("SELECT * FROM forums WHERE type='parti' AND id='" . $forum . "' AND id_f='" . $surforum . "'  AND pseudo='" . $pseudo . "'");
                    while($donne6 = mysql_fetch_array($retour6))
                    {
                        $sujet = $donne6['id2'];
                        $forum = $donne6['id'];
                        $surforum = $donne6['id_f'];
                        $retour8 = mysql_query("SELECT * FROM forums WHERE type='sujets' AND id='" . $forum . "' AND id_f='" . $surforum . "' AND id2='" . $sujet . "'  AND pseudo='" . $pseudo . "'");
                        $donne8 = mysql_fetch_array($retour8);
                        $pseudod = $donne8['pseudo'];
                        $retour9 = mysql_query("SELECT * FROM users WHERE pseudo='" . $pseudod . "'");
                        $donne9 = mysql_fetch_array($retour9);
                        $retour10 = mysql_query("SELECT COUNT(*) AS nbre FROM forums WHERE type='sujets' AND id='" . $forum . "' AND id_f='" . $surforum . "' AND id2='" . $sujet . "'  AND pseudo='" . $pseudo . "'");
                        $donne10 = mysql_fetch_array($retour10);
                        $sujet = $donne6['id2'];
                        $pseucoo = htmlentities(addslashes($_COOKIE['pseudo']));
                        $lec = mysql_query("select COUNT(*) FROM forums where type='lect' AND id='" . $forum . "' AND id_f='" . $idf . "' AND id2='"  . $sujet . "' AND pseudo='" . $pseucoo . "'");
                        $lect = mysql_result($lec,0);
                        if(empty($lect))
                        {
                            $ouinon = "non";
                        }else{
                            $ouinon = "oui";
                        }
                        $lec2 = mysql_query("select COUNT(*) FROM forums where type='sujets' AND id='" . $forum . "' AND id_f='" . $idf . "' AND id2='"  . $sujet . "' AND pseudo='" . $pseucoo . "'");
                        $lect2 = mysql_result($lec2,0);
                        if(empty($lect2))
                        {
                            $ouinon2 = "non";
                        }else{
                            $ouinon2 = "oui";
                        }
                        ?>
                        <tr>
                        <td valign="top" width="20" style="border: 1px solid black;" bgcolor="#FE9F00" colspan="1">
                        <img src="images/<?php echo $ouinon; ?>-<?php echo $ouinon2; ?>.gif"></td>
                        <td valign="top" id="texte" style="border: 1px solid black;" bgcolor="#FE9F00" colspan="1">
                        <a href="voirmess.php?page=1&idf=<?php echo $donne8['id_f'];?>&forum=<?php echo $donne8['id'];?>&sujet=<?php echo $donne8['id2'];?>#titre"><?php echo $donne8['titre'];?></td>
                        <td valign="top" id="texte" style="border: 1px solid black;" bgcolor="#FE9F00" colspan="1">
                        <center><a href="profil.php?id=<?php echo $donne9['id']; ?>"><?php echo $donne8['pseudo'];?></a></center>
                        </td>
                        <td valign="top" id="texte" style="border: 1px solid black;" bgcolor="#FE9F00" colspan="1">
                        <?php echo $donne10['nbre']; ?>
                        </td>
                        </tr>
                        <?php
                    }
                }
            }
        }
    }
    echo"</table>";
}
else
{
echo"<h1>Une erreur c'est produite.</h1>";
}
?>


Merci d'avance Smiley decu
Modifié par yyyaasss@gmail.com (15 Oct 2006 - 18:48)
Lorsque tu fais cette boucle:


while($donne6 = mysql_fetch_array($retour6))
{
}


Il y a un moment où tu coupe la boucle en mettant dans le code "?>"

Je ne garanti rien, mais couper une boucle en plein action par un "?>" doit etre le probleme...

Essaye voir ce code là à la place de celui que tu as déjà :

while( $donne6 = mysql_fetch_array($retour6) )
{
	$sujet = $donne6['id2'];
	$forum = $donne6['id'];
	$surforum = $donne6['id_f'];
	$retour8 = mysql_query("SELECT * FROM forums WHERE type='sujets' AND id='" . $forum . "' AND id_f='" . $surforum . "' AND id2='" . $sujet . "'  AND pseudo='" . $pseudo . "'");
	$donne8 = mysql_fetch_array($retour8);
	$pseudod = $donne8['pseudo'];
	$retour9 = mysql_query("SELECT * FROM users WHERE pseudo='" . $pseudod . "'");
	$donne9 = mysql_fetch_array($retour9);
	$retour10 = mysql_query("SELECT COUNT(*) AS nbre FROM forums WHERE type='sujets' AND id='" . $forum . "' AND id_f='" . $surforum . "' AND id2='" . $sujet . "'  AND pseudo='" . $pseudo . "'");
	$donne10 = mysql_fetch_array($retour10);
	$sujet = $donne6['id2'];
	$pseucoo = htmlentities(addslashes($_COOKIE['pseudo']));
	$lec = mysql_query("select COUNT(*) FROM forums where type='lect' AND id='" . $forum . "' AND id_f='" . $idf . "' AND id2='"  . $sujet . "' AND pseudo='" . $pseucoo . "'");
	$lect = mysql_result($lec,0);
    
	if(empty($lect))
		$ouinon = "non";
	else
		$ouinon = "oui";
	$lec2 = mysql_query("select COUNT(*) FROM forums where type='sujets' AND id='" . $forum . "' AND id_f='" . $idf . "' AND id2='"  . $sujet . "' AND pseudo='" . $pseucoo . "'");
	$lect2 = mysql_result($lec2,0);
	if(empty($lect2))
		$ouinon2 = "non";
	else
		$ouinon2 = "oui";

	echo '<tr>';
		echo '<td valign="top" width="20" style="border: 1px solid black;" bgcolor="#FE9F00" colspan="1"><img src="images/'.$ouinon.'-'.$ouinon2.'.gif"></td>';
		echo '<td valign="top" id="texte" style="border: 1px solid black;" bgcolor="#FE9F00" colspan="1"><a href="voirmess.php?page=1&idf='.$donne8['id_f'].'&forum='.$donne8['id'].'&sujet='.$donne8['id2'].'#titre">'.$donne8['titre'].'</td>';
		echo '<td valign="top" id="texte" style="border: 1px solid black;" bgcolor="#FE9F00" colspan="1"><center><a href="profil.php?id='.$donne9['id'].'">'.$donne8['pseudo'].'</a></center></td>';
		echo '<td valign="top" id="texte" style="border: 1px solid black;" bgcolor="#FE9F00" colspan="1">'.$donne10['nbre'].'</td>';
	echo '</tr>';
}


PS: Tu est débutant en PHP ? Si oui, il va falloir, au niveau de l'aspect du code, revoir quelques trucs Smiley cligne
Modifié par chpego (25 Oct 2006 - 01:22)
hey Smiley smile

on pourrait avoir ta structure *SQL ?
parce que comme ça, c'est un peu compliqué

un forum n'est pas quelque chose de simple à faire (sans parler de la gestion des groupes utilisateurs ou cache partielle etc.)
il te faut une bonne structure MySQL par exemple, et après le bouclage de ta table va te paraître trivial
c'est un peu ce qui va faire que ton forum est légé ou pas.

donc, j'aimerais voir ta table MySQL Smiley smile

et pour ton code, tu devrais préférer utiliser les standards Smiley murf
Modifié par HyWaN (25 Oct 2006 - 07:21)